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:/Uploads 不是有效的虚拟路径。”。

4

2 回答 2

1

如果要获取目录中的文件并且知道完整路径,则无需使用Server.MapPath(). 只需使用路径。

顺便说一句,您的代码中的路径分隔符不正确。字符串"D:/Uploads"应该是@"D:\Uploads"(注意前面的@ 符号表示应该按字面意思处理而不是转义的字符串)。

于 2012-05-09T06:59:12.527 回答
0

当然。您告诉您的服务器映射完全脱离 IIS 的路径。它应该怎么做?如果您使用的是 Web 应用程序,请尝试完全避免此类想法。尽管有可能,但由于您可能会遇到安全问题,这不是一个好主意。

于 2012-05-09T06:59:00.527 回答