Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在web应用程序中找不到路径_C#_Asp.net_Streamwriter - Fatal编程技术网

C# 在web应用程序中找不到路径

C# 在web应用程序中找不到路径,c#,asp.net,streamwriter,C#,Asp.net,Streamwriter,我正在尝试使用ASP.NET 4.5和c#编写文本文件,代码如下: 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\SysW

我正在尝试使用ASP.NET 4.5和c#编写文本文件,代码如下:

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'."

文件夹
experience
是我的web应用程序的文件夹。

您需要提供物理路径而不是相对路径,请使用
Server.MapPath(“~”)
获取站点的根路径,然后将文件路径附加到其中。您可以在本文中了解有关Server.MapPath的更多信息

试试这个代码

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");
}

当您在ASP.NET中使用相对路径时,它使用的工作目录不是您的web根目录,而是您的IIS正在运行的目录。
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");
}