我所擁有的文件與完全合格的路徑(根/測試/ thing1/thing2/file.txt的)的集合創建目錄。我想foreach
在此集合和文件拖放到路徑定義的位置,但是,如果沒有某些目錄,我希望他們能夠極大自動創建。我的程序有一個默認的「放置位置」,例如z:/
。 「放置位置」開始爲空,因此在上面的示例中,第一項應自動創建創建z:/root/test/thing1/thing2/file.txt
所需的目錄。我怎樣才能做到這一點?自動從長路徑
Q
自動從長路徑
10
A
回答
16
foreach (var relativePath in files.Keys)
{
var fullPath = Path.Combine(defaultLocation, relativePath);
var directory = Path.GetDirectoryName(fullPath);
Directory.CreateDirectory(directory);
saveFile(fullPath, files[relativePath]);
}
其中的文件是IDictionary<string, object>
。
10
string somepath = @"z:/root/test/thing1/thing2/file.txt";
System.IO.Directory.CreateDirectory(System.IO.Path.GetDirectoryName((somepath));
3
檢查IO namespace(Directory,Path),我想他們會幫你
using System.IO
然後檢查它..
string fileName [email protected]"d:/root/test/thing1/thing2/file.txt";
string directory = Path.GetDirectoryName(fileName);
if (!Directory.Exists(directory))
Directory.CreateDirectory(directory);
7
Directory.CreateDirectory("/root/...")
創建中的所有目錄和子目錄指定路徑
頁
1
string filename = "c:\\temp\\wibble\\wobble\\file.txt";
string dir = Path.GetDirectoryName(filename);
if (!Directory.Exists(dir))
{
Directory.CreateDirectory(dir);
}
File.Create(filename);
當然,有合適的異常處理。
0
我發現在執行開始時設置「默認位置」有助於減少一些冗餘代碼(例如,Path.Combine(defaultLocation, relativePath)
)。
例子:
var defaultLocation = "z:/";
Directory.SetCurrentDirectory(defaultLocation);
Directory.SetCurrentDirectory(AppContext.BaseDirectory);
相關問題
- 1. 增長蛋自動添加到路徑?
- 2. 替代Directory.CreateDirectory(路徑)支持長路徑
- 3. 長文件路徑
- 4. ScriptResource.axd路徑太長
- 5. Drupal自動更改路徑
- 6. 創建路徑從long長三上JS
- 7. 動態根路徑路徑
- 8. 內部路徑長度
- 9. msys git和長路徑
- 10. 圖表最長路徑
- 11. 計算最長路徑
- 12. Deduce最長的路徑
- 13. 類路徑線過長
- 14. Xamarin Android文件路徑長
- 15. Firefox不支持長路徑
- 16. 瘋狂長類路徑
- 17. 路徑太長例外MTM
- 18. 從滾動列表中自動更新路徑
- 19. 獲取gvim自動轉換cygwin路徑
- 20. 自動抓取文件路徑
- 21. Makefile自動完成路徑(例如defconfig)
- 22. 自動加載路徑和STI繼承
- 23. VB.NET字符串路徑自動中斷
- 24. 在rails 3中自動生成路徑?
- 25. 自動工具包括路徑
- 26. 動畫路徑?
- 27. 路徑動畫
- 28. 的Windows短路徑格式長路徑格式
- 29. Inno Setup Compiler「找不到指定的路徑」長路徑錯誤
- 30. 軟件包名稱路徑 - 完全合格後路徑太長
同意,沒有必要檢查是否存在目錄因爲它這個內部。 – Squirrel 2010-10-27 20:14:51