2012-12-20 14 views
0

我想获取我的.net web应用程序中文件系统文件夹中的文件列表。当我运行该应用程序时,出现一个错误消息,指出该目录“不是有效的虚拟路径”。我如何得到这个返回文件,这些文件位于我的WebApp目录中(它们位于{webapp root} \ docs \ custFiles)。获取asp.net web应用程序的文件列表,返回不是有效的虚拟路径

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; 
} 
+0

你打电话给mappath两次 –

+0

“〜”是不必要的。 – GeorgesD

回答

0

的问题是这一行:

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

正如你已经在这里建立的目录名称:

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

您可以只使用而不在使用Server.Mappath CALL存在:

bool IsExists = System.IO.Directory.Exists(directory); 
+0

我还假设存在(dir.Append(custNo + @“\”);)的custNo文件夹。 –

0

好吧,看来pr与您正在传递的虚拟路径相关的会话。相反,尝试这一点。

String directory=Server.MapPath("~/docs/custFiles"); 
if(System.IO.Directory.Exists(directory)) 
{ 
    //do your coding.. 
} 
相关问题