Làm cách nào để tạo nhiều thư mục từ một đường dẫn đầy đủ trong C #?


162

Nếu bạn có một đường dẫn đầy đủ như: "C:\dir0\dir1\dir2\dir3\dir4\"làm thế nào bạn thực hiện tốt nhất để tất cả các thư mục có mặt?

Có một phương pháp cho điều này trong BCL? Nếu không, cách thanh lịch nhất để làm điều này là gì?

Câu trả lời:


346

Tôi sẽ gọi Directory.CreateDirectory(@"C:\dir0\dir1\dir2\dir3\dir4\").

Trái với niềm tin phổ biến, Directory.CreateDirectorysẽ tự động tạo ra bất kỳ thư mục gốc nào không tồn tại.
Theo cách nói của MSDN,Creates all directories and subdirectories as specified by path.

Nếu toàn bộ đường dẫn đã tồn tại, nó sẽ không làm gì cả. (Nó sẽ không ném ngoại lệ)


3
Cảm ơn, tôi không biết điều này. Đường dẫn phải là đường dẫn thư mục, không phải đường dẫn tệp, phải không?
Joan Venge

27
@Janan: Vâng; bạn có thể gọi Path.GetDirectoryNameđể có được nó.
SLaks

2
Nó nên được gọi là CreatDirectoryTree
OldSchool

3

Tạo thư mục từ filepath hoàn chỉnh

private String EvaluatePath(String path){

    try
    {
        String folder = Path.GetDirectoryName(path);
        if (!Directory.Exists(folder))
        {
            // Try to create the directory.
            DirectoryInfo di = Directory.CreateDirectory(folder);
        }
    }
    catch (IOException ioex)
    {
        Console.WriteLine(ioex.Message);
        return "";
    }
    return path;
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.