Làm cách nào để kiểm tra xem thư C:/
mục có chứa một thư mục được đặt tên MP_Upload
hay không và nếu nó không tồn tại, hãy tạo thư mục tự động?
Tôi đang sử dụng Visual Studio 2005 C #.
Làm cách nào để kiểm tra xem thư C:/
mục có chứa một thư mục được đặt tên MP_Upload
hay không và nếu nó không tồn tại, hãy tạo thư mục tự động?
Tôi đang sử dụng Visual Studio 2005 C #.
Câu trả lời:
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 thư mục nếu nó chưa tồn tại. Trước tiên không cần phải kiểm tra rõ ràng.
Bất kỳ và tất cả các thư mục được chỉ định trong đường dẫn đều được tạo, trừ khi chúng đã tồn tại hoặc trừ khi một số phần của đườ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 pháp này không làm gì cả.
(Điều này cũng có nghĩa là tất cả các thư mục dọc theo đường dẫn được tạo nếu cần: CreateDirectory(@"C:\a\b\c\d")
đủ, ngay cả khi C:\a
chưa tồn tại.)
Tuy nhiên, 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: Việc tạo một thư mục ngay bên dưới thư mục gốc của phân vùng hệ thống C:\
là điều khó hiểu. Cân nhắc cho phép người dùng chọn một thư mục hoặc tạo một thư mục trong %APPDATA%
hoặc %LOCALAPPDATA%
thay vào đó (sử dụng Environment.GetFolderPath cho điều đó). Trang MSDN của liệt kê 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.
EnsureDirectoryExists
sẽ làm cho phương thức khó tìm hơn.
Directory.CreateDirectory
sẽ ném nếu tên thư mục khớp với tên tệp hiện có.
if(!System.IO.Directory.Exists(@"c:\mp_upload"))
{
System.IO.Directory.CreateDirectory(@"c:\mp_upload");
}
Create
để CreateDirectory
:)
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);
}
Bạn có thể thử cái này ..
using System.IO;string path = "C:\MP_Upload";if(!Directory.Exists(path)){
Directory.CreateDirectory(path);}