不能在Web应用程序中找到路径
问题描述:
我想写使用下面的代码使用ASP.NET 4.5 with c#
一个文本文件:不能在Web应用程序中找到路径
using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"./Experiment/main.txt", true))
{
file.WriteLine(DateTime.UtcNow.ToString() + " test");
}
而且我得到这个异常:
"Could not find a part of the path 'C:\Windows\SysWOW64\inetsrv\Experiment\main.txt'."
文件夹Experiment
是我的web应用程序的文件夹。
答
您需要给物理路径而不是相对路径,使用Server.MapPath("~")
来获取站点的根路径,然后将文件路径附加到它。您可以在post中了解有关Server.MapPath的更多信息。当您在ASP.NET使用相对路径
using (System.IO.StreamWriter file = new System.IO.StreamWriter(Server.MapPath(@"~/Experiment/main.txt"), true))
{
file.WriteLine(DateTime.UtcNow.ToString() + " test");
}
答
试试这个代码
using (System.IO.StreamWriter file = new System.IO.StreamWriter(AppDomain.CurrentDomain.BaseDirectory+"Experiment/main.txt", true))
{
DirectoryInfo dirInfo = new DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory+"Experiment/main.txt");
if (!dirInfo.Exists)
{
dirInfo.Create();
}
file.WriteLine(DateTime.UtcNow.ToString() + " test");
}
,它使用的工作目录是不是你的Web根目录,这是你的IIS运行的位置。 – Tobberoth