2016-05-23 83 views
2

我必須創建多個文件夾,例如,創建目錄將通過參數傳遞多個名稱C#

Directory.CreateDirectory("PATH\\" + _year + "filetosave.txt"); 

"PATH\\"是其中文件夾將駐留的完整路徑,_year是參數和"filetosave.txt"是要被保存的相應文件夾中的文件。
並且在運行時,它應該創建包含相應文件的文件夾名稱中包含多年的相應文件夾以進行保存。

.CreateDirectory()方法只接受string pathstring path, security access作爲參數。

  • ,我們將如何建立這些參數文件夾?
  • 我們怎樣才能檢查,一個指定的目錄已經存在與否?
+3

通常,使用'System.IO.Path.Combine'來構建路徑。 –

+0

'Directory.CreateDirectory(Path.Combine(「Path \\」,DateTime.Now.Year,「filetosave.txt」));'? –

+0

請參閱此線程以創建一個將同時創建目錄和文件的方法。 http://stackoverflow.com/questions/3201598/how-do-i-create-a-file-and-any-folders-if-the-folders-dont-exist如果你想創建多年,把這個在foreach外觀或使用Linq lambda。 –

回答

2

至於評論,力圖打造系統路徑時使用Path.Combine

var root = "Path"; 
var year = "2016"; 
var filename = "filetosave.txt"; 

var path = Path.Combine(root, year, filename); 
// path = Path\2016\filetosave.txt 

Directory.CreateDirectory(path); 
+0

@ Jonesopolis - 如果這些年過去了,那麼我們將如何處理?由於每年都不需要手動定義! – maliks

+0

我不明白如何導致任何形式的問題。您只需循環使用多年,併爲每個目錄創建一個目錄。這本來就是構建動態路徑的一個例子。 – Jonesopolis

+0

它的意思是'var = year'如果作爲循環中的參數傳遞,它將正常工作 – maliks

3
var path = Path.Combine("PATH\\", _year.ToString(), "filettosave.txt"); 
Directory.CreateDirectory(path); 

Directory.CreateDirectory

創建的所有目錄和子目錄在指定的路徑,除非它們已經存在。

重點煤礦。

+0

@ Sylverac - 我想,如你所說'Path.Combine()'方法,參數'_year'應該是'_year.ToString()'因爲它僅接受stirngs – maliks

+0

@Taufel是的,我注意到了這一點,並作出了修改。 –

0

一般情況下,使用System.IO.Path.Combine構建路徑。它簡化了這項任務。

string dir = System.IO.Path.Combine(rootPath, _year.ToString()); 
Directory.CreateDirectory(dir); 
string file = System.IO.Path.Combine(dir, "filetosave.txt"); 
FileStream fs = File.Create(file) 
相關問題