在我的应用程序的配置中,我有一条路径,例如"logs\updater\updater.log"
启动应用程序,我想创建文件updater.log,创建所有子文件夹(如果它们不存在).
因此,如果明天我的用户将配置中的路径更改为"logs\mypathisbetter\updater.log",我的应用程序将继续工作,将日志写入新文件.
File.Create,FileInfo.Create,Streamwriter.Create或者这样:他们这样做吗?
或者,我之前需要检查文件夹是否存在?
我无法在网上找到这个问题的明确答案.
Fer*_*oce 14
使用一点代码解决:
private static void EnsureDirectoryExists(string filePath)
{
FileInfo fi = new FileInfo(filePath);
if (!fi.Directory.Exists)
{
System.IO.Directory.CreateDirectory(fi.DirectoryName);
}
}
Run Code Online (Sandbox Code Playgroud)
对不起这个真正的新手帖子...谢谢大家!:-)
Gra*_*ton 10
不,他们似乎没有 - 你会得到一个DirectoryNotFoundException,我相信这三个.
你需要先做一些事情Directory.CreateDirectory(path).
编辑:
对于一个以包含文件名的路径开头的完整解决方案,请尝试:
Directory.CreateDirectory(Path.GetDirectoryName(fullPath));
TextWriter writer = new StreamWriter(fullPath);
writer.WriteLine("hello mum");
writer.Close();
Run Code Online (Sandbox Code Playgroud)
但请记住,您也需要一些错误处理,以便编写器始终关闭(在'finally'块中).
小智 6
如果只想创建一个不存在的文件夹/目录,另一种选择是在 C# 中简单地执行此操作:
// using System.IO;
if (!Directory.Exists(destination))
{
Directory.CreateDirectory(destination);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11309 次 |
| 最近记录: |