服务器.MapPath - 给定物理路径,期望虚拟路径

49

我正在使用这行代码:

var files = Directory.GetFiles(Server.MapPath("E:\\ftproot\\sales"));

我想在文件夹中定位文件,但是收到错误消息,提示:

"给出物理路径,但期望虚拟路径"。

我对在C#中使用System.IO还不太熟悉,所以我想知道是否可能输入物理路径来完成这个操作?

2个回答

90

如果您已经知道您的文件夹是:E:\ftproot\sales,那么您就不需要使用Server.MapPath。只有在您只有一个相对虚拟路径,例如~/folder/folder1并且您想知道磁盘上的实际路径时,才需要使用这个方法...


谢谢你提醒我,我之前不知道。你有什么建议,我应该使用什么? - 109221793
1
这要看情况。你为什么在代码中写死了 E:\ftproot\sales 的路径呢?如果路径是固定的且只有这一个,那就直接用 GetFiles("E:\ftproot\sales")... 但我会建议把这个路径放到 web.config 中,这样不仅可以避免魔法字符串,也更方便修改和查找,无需重新编译。 - Davide Piras
谢谢@DavidePiras,这对我很有用 ;) - Hamid Talebi

10
var files = Directory.GetFiles(@"E:\ftproot\sales");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接