c# - ASP.Net Core“System.IO.DirectoryNotFoundException”在某些站点但不是其他站点
问题描述
创建适用于某些项目的 json 文件的代码在所有新项目上都失败了。
以管理员身份运行没有帮助。
请帮忙!
我创建的所有新的 ASP.Net Core MVC 项目都无法在本地目录中创建文件。失败的代码是:
string _physicalPath = Path.Combine(Path.Combine(Directory.GetCurrentDirectory(), "Files"), "tblTxt.json");
using (StreamWriter writer = System.IO.File.AppendText(_physicalPath))
{
writer.WriteLine("log message");
}
所有新项目的结果是:{System.IO.DirectoryNotFoundException:找不到路径“C:\Program Files\IIS Express\Files\tblTxt.json”的一部分。在 System.IO.FileStream.ValidateFileHandle(SafeFileHandle fileHandle) 在 System.IO.FileStream.CreateFileOpenHandle(FileMode mode, FileShare share, FileOptions options) 在 System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare Share, Int32 bufferSize, FileOptions options) at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize) at System.IO.StreamWriter..ctor(String path, Boolean append) at System.IO .File.AppendText(String path) at WebAutomation.Startup.Configure(IApplicationBuilder app, IHostingEnvironment env) 在 C:\Users\patri\source\repos\WebAutomation\WebAutomation\Startup.cs:line 25}
解决方案
首先 Path.Combine(Path.Combine(Directory.GetCurrentDirectory(), "Files") 不好 像这样传递字符串给它
var t = Path.Combine("D:", "DOWNLOADS","abc");//==>D:\DOWNLOADS\abc
其次是 Directory.GetCurrentDirectory() 为您提供“C:\Program Files\IIS Express\Files\tblTxt.json”。
Check if "Files" directory exists in "C:\Program Files\IIS Express" using
"Directory.Exists()"
if it dosent exist then create one using "Directory.CreateDirectory()"
Directory.CreateDirectory(@"C:\Program Files\IIS Express\Files")
推荐阅读
- matlab - 如何根据输入参数的数量动态创建嵌套循环
- amazon-web-services - 如何运行 DynamoDB Web 服务?
- node.js - voice xml:lang="en-US" xml:gender="Male" name="Microsoft 服务器语音文本始终为女性语音
- apache-karaf - 找不到 org.ops4j.pax.cdi:pax-cdi-features:jar:1.0.0.RC1
- python - 如何以代码格式发送消息?
- ios - 以编程方式添加的约束并不总是有效
- javascript - 如何使用 .filter 比较数组中存在的每个值
- java - 方法太多无法解决
- listview - 变量不是初始化器
- julia - Julia 中的“大”分数