File.Delete无法从子文件夹中删除图像

Bla*_*ake 2 c# asp.net

在我们的ASP.NET程序中,用户可以将图像上传到文件夹.图像的位置(包括根目录中的上载文件夹的名称)存储为称为"路径"的变量,即."上传/ fileName.jpg".

要删除图像:

if (File.Exists("~/" + path))
                {
                    File.Delete("~/" + path);
                }
Run Code Online (Sandbox Code Playgroud)

但是,它无法运行,因为它无法验证文件是否存在.通过一些测试,我们注意到它正在"system32"目录中寻找"path".为什么会这样?

Mik*_*ler 8

您需要使用Server.Map路径来确保正确解析Tilde.

MSDN文章在这里 - > http://msdn.microsoft.com/en-us/library/ms524632(v=vs.90).aspx

你的代码会变成

var fixedPath = Server.MapPath("~/" + path);

if (File.Exists(fixedPath))
{
  File.Delete(fixedPath);
}
Run Code Online (Sandbox Code Playgroud)