2012-05-09 137 views
0

我想要更改保存在asp.net文件夾中的文件的虛擬路徑(路徑不在項目中表示本地系統或服務器)。虛擬路徑更改

代碼是

DataTable dtFiles = 
    GetFilesInDirectory(HttpContext.Current.Server.MapPath(UPLOADFOLDER)); 
gv.DataSource = dtFiles; 
gv.DataBind(); 

if (dtFiles != null && dtFiles.Rows.Count > 0) 
{ 
    double totalSize = Convert.ToDouble(dtFiles.Compute("SUM(Size)", "")); 
    if (totalSize > 0) lblTotalSize.Text = CalculateFileSize(totalSize); 
} 

private static string UPLOADFOLDER = "D:/Uploads"; 

和錯誤顯示 「d:/上傳不是有效的虛擬路徑。」

回答

0

當然。您正在告訴您的服務器映射完全脫離IIS的路徑。它應該怎麼做?如果您使用的是Web應用程序,請嘗試完全避免此類想法。儘管有可能,但由於可能遇到安全問題,這不是一個好主意。

1

如果您想要獲取目錄中的文件並知道完整路徑,則不需要使用Server.MapPath()。只需使用路徑。

順便提一下,代碼中的路徑分隔符不正確。字符串"D:/Uploads"應該是@"D:\Uploads"(注意leading @ sign表示一個字符串,應該逐字處理並且不要轉義)。