可能的虚拟路径:

/folder1/folder2/image.jpg
~/folder1/folder2/image.jpg
folder1/folder2/image.jpg

具体路径:
C:\folder1\folder2\image.jpg
D:\folder1\folder2\image.jpg
C:/folder1/folder2/image.jpg
C:/folder1\folder2/image.jpg

您如何以不容易出错的方式检查路径是否是虚拟的?我问的原因是因为当我在具体路径上使用Server.MapPath()时,它将引发异常。但是,我要传递给Server.MapPath()的可以是上面提供的任何示例,在运行时之前我也不知道它是什么。

最佳答案

这对我来说足够好:

protected string GetPath(string path)
{
    if (Path.IsPathRooted(path))
    {
        return path;
    }

    return Server.MapPath(path);
}

09-11 01:24