2012-12-20 36 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.. 
} 
相關問題