2010-11-22 149 views
11

我想創建一個名爲log一個新的文件夾,該文件夾內我想創建 一個名爲log.txt文本文件,這是我想創建D:\New Folder創建一個新的文件夾,該文件夾

路徑內的文本文件我曾經嘗試這樣做,以創建一個名爲日誌

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

一個新的文件夾,我已經創建使用這種

string FilePathSave = Folder.ToString() +"log.txt"; 
File.WriteAllText(FilePathSave, TextBox1.Text);     
一個文本文件

但我不能創建像D:\New Folder\Log\log.txt ...任何建議?

回答

28

Urm,是這樣的?

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

檢查目錄是否存在並非真正需要,不是嗎? '任何和所有路徑中指定的目錄都被創建,除非它們已經存在' - [Directory.CreateDirectory]的MSDN定義(http://msdn.microsoft.com/en-us/library/54a0at6s(v = vs.110)的.aspx) – 2014-01-07 06:25:01

4

嘗試使用Path.Combine這裏:

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); 

而且使用System.IO指令添加到您的形式。

1

此問題的所有其他答案都是正確的。但我想指出Directory.Exists不是必需的。即使該目錄已經存在,Directory.CreateDirectory也不會拋出異常。代碼可以像下面三行一樣簡單。

const string Folder = @"C:\temp" 
Directory.CreateDirectory(Folder); 
File.WriteAllText(Path.Combine(Folder, "log.txt"), "This is the test you want to write"); 
相關問題