在某些站点中而不是其他站点中的ASP.Net Core“ System.IO.DirectoryNotFoundException”

时间:2019-02-04 17:16:07

标签: c# asp.net

在所有新项目上创建用于某些项目的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模式,FileShare共享,FileOptions选项)    在System.IO.FileStream..ctor处(字符串路径,FileMode模式,FileAccess访问,FileShare共享,Int32 bufferSize,FileOptions选项)    在System.IO.StreamWriter..ctor处(字符串路径,布尔值附加,编码编码,Int32 bufferSize)    在System.IO.StreamWriter..ctor处(字符串路径,布尔值附加)    在System.IO.File.AppendText(字符串路径)    在WebAutomation.Startup.Configure(IApplicationBuilder应用程序,IHostingEnvironment env)位于C:\ Users \ patri \ source \ repos \ WebAutomation \ WebAutomation \ Startup.cs:line 25}

1 个答案:

答案 0 :(得分:1)

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