Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.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/8/svg/2.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# 保存路径、虚拟目录和静态位置_C#_Asp.net - Fatal编程技术网

C# 保存路径、虚拟目录和静态位置

C# 保存路径、虚拟目录和静态位置,c#,asp.net,C#,Asp.net,我有一个上传到web应用程序根目录中的文件夹的文件,即 string savePath = @"~/documentation/" string filename = Path.GetFileName(FileUploadControl.FileName); FileUploadControl.SaveAs(Server.MapPath(savePath) + filename); 这很好,将文件上传到WebApp/documentation/filename.abc 问题是,我想更改文档的

我有一个上传到web应用程序根目录中的文件夹的文件,即

string savePath = @"~/documentation/"

string filename = Path.GetFileName(FileUploadControl.FileName);
FileUploadControl.SaveAs(Server.MapPath(savePath) + filename);
这很好,将文件上传到WebApp/documentation/filename.abc

问题是,我想更改文档的位置,这样在从开发推送到生产时就不必移动该文件夹。所以我做了下面的事情

在Web.Config中:

<appSettings>
    <add key="DocumentationLocation" value="C:\Documentation\" />
</appSettings>
我认为这将同样有效,将文件保存到web.config中指定的文件夹中

但是,我现在尝试上载文档时出现错误,即:

“C:\TM\U Documentation\”不是有效的虚拟路径


知道我做错了什么吗,这样我就可以修复它并将文件保存到web应用程序目录之外?谢谢

删除
服务器.MapPath()
,您不需要服务器为您映射路径,因为您已经给出了完整路径。

如果您的路径为“C:\Documentation\”,则不需要
服务器.MapPath
。 只有在配置有相对路径(如“~/Documentation/”时,
Server.MapPath
才是必需的

试试这个

FileUploadControl.SaveAs(savePath + filename);

完美的非常感谢。一旦系统允许,我会将其标记为已回答。(有趣的是,两天前我花时间研究mappath,但现在却发现它没有必要了。我猜这就是它的工作原理。)
FileUploadControl.SaveAs(savePath + filename);