微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如果不存在,Streamwriter还应该从路径创建目录

如何解决如果不存在,Streamwriter还应该从路径创建目录

使用StreamWriter写入日志文件时,我将传递到构造函数文件路径

using StreamWriter streamWriter = new StreamWriter("C:\\Logs\\log.txt",true);
streamWriter.WriteLine("test");

如果该文件不存在,那么编写者会在写入之前创建它。但是,如果目录不存在,则代码将引发 System.IO.DirectoryNotFoundException 。有没有办法告诉作者创建完整路径的意思,也就是创建目录?

解决方法

您可以使用Directory.CreateDirectory(path)在路径中创建所有不存在的目录。 如果您有文件路径,则可以使用Path.GetDirectoryName(pathToFile)获取到没有文件的最后目录的路径。

string filePath = "C:\\Logs\\log.txt";
string dirPath = Path.GetDirectoryName(filePath);
if(!Directory.Exists(dirPath))
    Directory.CreateDirectory(dirPath);
,

似乎无法在写入新文件时告诉StreamWriter创建目录。

初始化FileStream时,StreamWriter中断on invalid handles,然后throw变成DirectoryNotFoundException。没有自动创建。

您必须使用Directory.CreateDirectory(path)自己创建目录。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。