0

我正在尝试在我的 .net Web 应用程序中的文件系统上的文件夹中获取文件列表。当我运行该应用程序时,我收到一条错误消息,指出该目录“不是有效的虚拟路径”。如何让它返回位于我的 WebApp 目录中的文件(它们位于 {webapp root}\docs\custFiles 中)。

try
{
    List<string> custFiles = new List<string>();
    StringBuilder dir = new StringBuilder(@"~\docs\custFiles\");
    dir.Append(custNo + @"\");
    string directory = HttpContext.Current.Server.MapPath(dir.ToString());
    bool IsExists = System.IO.Directory.Exists(directory);
    if (!IsExists)
    {
        string[] fileList = Directory.GetFiles(directory);
        custFiles = (fileList.ToList());
    }

    return custFiles;
}
catch (Exception ex)
{
    throw ex;
}
4

2 回答 2

0

问题是这一行:

bool IsExists = System.IO.Directory.Exists(Server.MapPath(directory));

因为您已经在此处构建了目录名称:

string directory = HttpContext.Current.Server.MapPath(dir.ToString());

您可以在没有 Server.MapPath 的情况下使用 Exists 调用:

bool IsExists = System.IO.Directory.Exists(directory);
于 2012-12-20T12:57:16.597 回答
0

好吧,您通过的虚拟路径似乎有问题。相反,试试这个。

String directory=Server.MapPath("~/docs/custFiles");
if(System.IO.Directory.Exists(directory))
{
   //do your coding..
}
于 2012-12-20T13:14:23.997 回答