首页 > 解决方案 > 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}

标签: c#asp.net

解决方案


首先 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")

推荐阅读