2012-02-01 46 views

Trả lời

154

Điều này sẽ giúp:

using System.IO; 
... 

string path = @"C:\MP_Upload"; 
if(!Directory.Exists(path)) 
{ 
    Directory.CreateDirectory(path); 
} 
+6

không cần phải kiểm tra! xem câu trả lời bên dưới – Adrian

+3

bằng System.IO; cũng được yêu cầu trong đầu – fnc12

+0

câu trả lời tuyệt vời !! –

9
if(!System.IO.Directory.Exists(@"c:\mp_upload")) 
{ 
    System.IO.Directory.CreateDirectory(@"c:\mp_upload"); 
} 
+0

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' :) –

152
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.

+38

+1 để đề cập đến bạn không cần 'Directory.Exists'. –

+3

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. –

+8

Đ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. –

5

này nên làm việc

if(!Directory.Exists(@"C:\MP_Upload")) { 
    Directory.CreateDirectory(@"C:\MP_Upload"); 
} 
0
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; 
      } 
     } 
    } 
} 
0
String path = Server.MapPath("~/MP_Upload/"); 
    if (!Directory.Exists(path)) 
    { 
     Directory.CreateDirectory(path); 
    } 
Các vấn đề liên quan