我有一段代碼在這裏,如果目錄不存在,打破:如果創建目錄不存在以創建文件,該如何創建目錄?
System.IO.File.WriteAllText(filePath, content);
在一個行(或幾行),則可以檢查目錄通往新文件沒有按是否存在,如果沒有,在創建新文件之前創建它?
我正在使用.NET 3.5。
我有一段代碼在這裏,如果目錄不存在,打破:如果創建目錄不存在以創建文件,該如何創建目錄?
System.IO.File.WriteAllText(filePath, content);
在一個行(或幾行),則可以檢查目錄通往新文件沒有按是否存在,如果沒有,在創建新文件之前創建它?
我正在使用.NET 3.5。
(new FileInfo(filePath)).Directory.Create()
在寫入文件之前。
或者
System.IO.FileInfo file = new System.IO.FileInfo(filePath);
file.Directory.Create(); // If the directory already exists, this method does nothing.
System.IO.File.WriteAllText(file.FullName, content);
優雅的解決方案,因爲它處理需要創建嵌套文件夾的情況。 – 2017-05-08 20:57:34
如果需要,您可以使用File.Exists來檢查文件是否存在並使用File.Create來創建它。確保您檢查是否有權在該位置創建文件。
一旦確定文件存在,您可以安全地寫入文件。儘管作爲一項預防措施,您應該將代碼放入try ... catch塊,並捕獲函數可能會引發的異常,如果事情沒有按計劃完成。
我最初誤讀了你想寫入一個可能不存在的文件的問題。儘管文件和目錄IO的概念基本相同。 – hitec 2010-06-02 06:24:29
您可以使用下面的代碼
DirectoryInfo di = Directory.CreateDirectory(path);
'Directory.CreateDirectory'完全符合你的要求:它創建目錄,如果它還不存在。 **沒有必要先做一個明確的檢查**。 – 2012-10-08 15:45:27
如果'path'是文件而不是目錄,則拋出IOException。 https://msdn.microsoft.com/zh-cn/library/54a0at6s(v=vs.110).aspx – scaryman 2015-04-15 22:31:20
正如@hitec說,你要確保你有正確的權限,如果你這樣做,你可以使用這條線確保該目錄的存在:
Directory.CreateDirectory(Path.GetDirectoryName(filePath))
var filePath = context.Server.MapPath(Convert.ToString(ConfigurationManager.AppSettings["ErrorLogFile"]));
var file = new FileInfo(filePath);
file.Directory.Create();
如果該目錄已經存在,這個方法不起作用。
var sw = new StreamWriter(filePath, true);
sw.WriteLine(Enter your message here);
sw.Close();
的可能的複製[如果文件夾不存在,創建它(http://stackoverflow.com/questions/9065598/if-a-folder -does-not-exist-create-it) – 2016-11-28 03:05:49