2010-11-22 43 views
11

Tôi muốn tạo một thư mục mới có tên log và bên trong thư mục mà tôi muốn tạo một textfile tên log.txt và đây là con đường tôi muốn tạo D:\New Foldertạo một thư mục mới và một tập tin văn bản bên trong thư mục đó

i đã cố gắng này để tạo một thư mục mới có tên đăng nhập

string FilePathSave = Folder.ToString() + System.IO.Directory.CreateDirectory(@"D:\New Folder\Log"); 

Và tôi đã tạo ra một tập tin văn bản sử dụng này

string FilePathSave = Folder.ToString() +"log.txt"; 
File.WriteAllText(FilePathSave, TextBox1.Text);     

Nhưng tôi không thể tạo ra như D:\New Folder\Log\log.txt ... bất kỳ đề xuất ??

Trả lời

28

Urm, một cái gì đó như thế này?

var dir = @"D:\New folder\log"; // folder location 

if(!Directory.Exists(dir)) // if it doesn't exist, create 
    Directory.CreateDirectory(dir); 

// use Path.Combine to combine 2 strings to a path 
File.WriteAllText(Path.Combine(dir, "log.txt"), "blah blah, text"); 
+5

Kiểm tra thư mục tồn tại không thực sự cần thiết, phải không? 'Bất kỳ và tất cả các thư mục được chỉ định trong đường dẫn được tạo ra, trừ khi chúng đã tồn tại' - định nghĩa MSDN của [Directory.CreateDirectory] (http://msdn.microsoft.com/en-us/library/54a0at6s (v = vs.110) .aspx) –

4

Hãy thử sử dụng Path.Combine đây:

string folder = Path.Combine(root, "log"); 
if(!Directory.Exists(folder)) Directory.CreateDirectory(folder); 
string file = Path.Combine(folder, "log.txt"); 
File.WriteAllText(file, text); 
6
string dir = @"D:\New Folder\Log"; 
    if (!Directory.Exists(dir)) 
    { 
     Directory.CreateDirectory(dir); 
    } 

    File.WriteAllText(Path.Combine(dir, "log.txt"), TextBox1.Text); 
0
string d = "D:\\New Folder"; 

if (!Directory.Exists) 
    Directory.CreateDirectory(d); 

File.WriteAllText(d + "\\log.txt", textBox1.Text); 

Và thêm bằng cách sử dụng chỉ thị System.IO để hình của bạn.

1

Tất cả các câu trả lời khác cho câu hỏi này là chính xác. Nhưng tôi muốn chỉ ra rằng các thư mục .Exists không được yêu cầu. Ngay cả khi thư mục đã tồn tại, sẽ không có ngoại lệ nào được Directory.CreateDirectory đưa ra. Mã có thể đơn giản như ba dòng sau.

const string Folder = @"C:\temp" 
Directory.CreateDirectory(Folder); 
File.WriteAllText(Path.Combine(Folder, "log.txt"), "This is the test you want to write"); 
Các vấn đề liên quan