C#.Net VS 2013写入文件夹,但无法找到相同的文件夹进行读取

C#.Net VS 2013写入文件夹,但无法找到相同的文件夹进行读取,c#,visual-studio-2013,asp.net-mvc-5,C#,Visual Studio 2013,Asp.net Mvc 5,我正在为内部用户构建一个C#MVC5 web应用程序。该应用程序生成发送给客户端的XML报告。为了方便内部用户,我们还希望他们可以下载这些报告 编写报告并将其保存到文件夹中不会出现问题。但是,当我试图从同一个文件夹中读取时,却找不到它 因此,我使用XmlDocument类的save()方法保存文件。文件保存得很好;我可以直接在文本编辑器中打开它 但是,当我尝试使用Response.WriteFile()从代码中检索文件时,我得到一个IO异常 下面是有问题的代码(它位于控制器类中): 以下是错误消

我正在为内部用户构建一个C#MVC5 web应用程序。该应用程序生成发送给客户端的XML报告。为了方便内部用户,我们还希望他们可以下载这些报告

编写报告并将其保存到文件夹中不会出现问题。但是,当我试图从同一个文件夹中读取时,却找不到它

因此,我使用XmlDocument类的save()方法保存文件。文件保存得很好;我可以直接在文本编辑器中打开它

但是,当我尝试使用Response.WriteFile()从代码中检索文件时,我得到一个IO异常

下面是有问题的代码(它位于控制器类中):

以下是错误消息:

An exception of type 'System.IO.DirectoryNotFoundException' occurred in mscorlib.dll but was not handled in user code
Additional information: Could not find a part of the path 'C:\Users\jrobson\documents\visual studio 2013\Projects\ProjectName\SiteRoot\Downloads\'.
当我从上面的错误消息复制路径并将其粘贴到Windows资源管理器中时,它工作正常。它直接导航到文件夹

那么到底发生了什么?权限显然在那里。文件夹已存在。为什么应用程序可以找到要写入的文件夹,而不能从中读取

尝试而不是

var mappedPath = Server.MapPath("/SiteRoot/Downloads/" + fileName);
这个


MateusBello-感谢您的回复。我尝试了“~”语法,但没有任何区别。错误完全相同。正如我在原始帖子中提到的,Server.MapPath正在构建正确的物理路径;我可以将它粘贴到Windows资源管理器中,它工作得非常好。因此,问题似乎并不在于路径的形成方式。对此表示抱歉。在这种情况下,如果是权限问题,您可以尝试另一个文件夹,如c:\test。我也会尝试使用管理员权限运行VS。嘿,我感谢你的努力。我尝试了不同的文件夹,并且总是以管理员的身份运行VS。好吧,我能想到的最后一件事是将xml加载到字符串变量
string xmlString=System.IO.File.ReadAllText(文件名)
并使用
Response.Write(xmlString)var mappedPath = Server.MapPath("/SiteRoot/Downloads/" + fileName);
var mappedPath = Server.MapPath("~/SiteRoot/Downloads/" + fileName);