Làm cách nào để kiểm tra xem thư mục C:/
có chứa thư mục có tên MP_Upload
không và tự động tạo thư mục?Kiểm tra xem một thư mục có tồn tại trong một thư mục hay không và tạo chúng bằng C#
Tôi đang sử dụng Visual Studio 2005 C#.
Làm cách nào để kiểm tra xem thư mục C:/
có chứa thư mục có tên MP_Upload
không và tự động tạo thư mục?Kiểm tra xem một thư mục có tồn tại trong một thư mục hay không và tạo chúng bằng C#
Tôi đang sử dụng Visual Studio 2005 C#.
Điều này sẽ giúp:
using System.IO;
...
string path = @"C:\MP_Upload";
if(!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
if(!System.IO.Directory.Exists(@"c:\mp_upload"))
{
System.IO.Directory.CreateDirectory(@"c:\mp_upload");
}
Vâng, tất nhiên, tôi đã đoán một chút. Ai đang cố gắng nhớ từng tên phương pháp nhỏ ... Và tôi đã lười để đốt cháy VS ... Điểm này - đối với tôi - là giúp người đó hỏi bằng cách đưa ra ý tưởng; nếu họ mong đợi tất cả những điều nhỏ nhặt này được sao chép-dán thân thiện, thì ... Họ phải suy nghĩ một chút, đúng, đúng ... Sửa đổi: thay đổi 'Tạo' thành' CreateDirectory' :) –
using System.IO;
...
Directory.CreateDirectory(@"C:\MP_Upload");
Directory.CreateDirectory thực hiện chính xác những gì bạn muốn: Nó tạo ra các thư mục nếu nó không tồn tại được nêu ra. Không cần thực hiện kiểm tra rõ ràng trước.
Mọi thư mục được chỉ định trong đường dẫn được tạo, trừ khi chúng tồn tại hoặc trừ khi một phần đường dẫn không hợp lệ. Tham số đường dẫn chỉ định đường dẫn thư mục, không phải đường dẫn tệp. Nếu thư mục đã tồn tại, phương thức này không làm gì cả.
(Điều này cũng có nghĩa rằng tất cả các thư mục dọc theo con đường được tạo ra nếu cần thiết:. CreateDirectory(@"C:\a\b\c\d")
đủ, thậm chí nếu C:\a
chưa hề tồn tại)
Hãy để tôi thêm một lời cảnh báo về lựa chọn thư mục của bạn, tuy nhiên: Tạo thư mục ngay bên dưới gốc phân vùng hệ thống C:\
được cau mày. Cân nhắc cho phép người dùng chọn một thư mục hoặc tạo thư mục trong %APPDATA%
hoặc %LOCALAPPDATA%
thay thế (sử dụng Environment.GetFolderPath cho điều đó). Trang MSDN của thông số Environment.SpecialFolder chứa danh sách các thư mục hệ điều hành đặc biệt và mục đích của chúng.
+1 để đề cập đến bạn không cần 'Directory.Exists'. –
Tôi không biết rằng bản thân mình; Tôi cảm thây xâu hổ; Tôi đã làm nếu không tồn tại sau đó tạo ra trong nhiều năm. –
Điều này đã xuất hiện trên một số chủ đề khác. Mặc dù bạn không cần phải kiểm tra, nó làm cho mục đích của mã rõ ràng hơn, ngày càng dễ đọc hơn đối với người ngoài. Vì vậy, việc kiểm tra có thể là một điều tốt. –
này nên làm việc
if(!Directory.Exists(@"C:\MP_Upload")) {
Directory.CreateDirectory(@"C:\MP_Upload");
}
using System;
using System.IO;
using System.Windows.Forms;
namespace DirCombination
{
public partial class DirCombination : Form
{
private const string _Path = @"D:/folder1/foler2/folfer3/folder4/file.txt";
private string _finalPath = null;
private string _error = null;
public DirCombination()
{
InitializeComponent();
if (!FSParse(_Path))
Console.WriteLine(_error);
else
Console.WriteLine(_finalPath);
}
private bool FSParse(string path)
{
try
{
string[] Splited = path.Replace(@"//", @"/").Replace(@"\\", @"/").Replace(@"\", "/").Split(':');
string NewPath = Splited[0] + ":";
if (Directory.Exists(NewPath))
{
string[] Paths = Splited[1].Substring(1).Split('/');
for (int i = 0; i < Paths.Length - 1; i++)
{
NewPath += "/";
if (!string.IsNullOrEmpty(Paths[i]))
{
NewPath += Paths[i];
if (!Directory.Exists(NewPath))
Directory.CreateDirectory(NewPath);
}
}
if (!string.IsNullOrEmpty(Paths[Paths.Length - 1]))
{
NewPath += "/" + Paths[Paths.Length - 1];
if (!File.Exists(NewPath))
File.Create(NewPath);
}
_finalPath = NewPath;
return true;
}
else
{
_error = "Drive is not exists!";
return false;
}
}
catch (Exception ex)
{
_error = ex.Message;
return false;
}
}
}
}
String path = Server.MapPath("~/MP_Upload/");
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
không cần phải kiểm tra! xem câu trả lời bên dưới – Adrian
bằng System.IO; cũng được yêu cầu trong đầu – fnc12
câu trả lời tuyệt vời !! –