2009-08-20 70 views
1

是否有一个内置的asp.net方法来检查路径的“虚拟性”?asp.net - 我的路径是虚拟的吗?

我已经能够做到这一点,到目前为止的唯一方法是用下面的try块:

public void Foo(String path){ 

    try 
    { 
     path = Server.MapPath(path); 
    } 
    catch(HttpException){} 

    // do stuff with path 
} 
+0

在什么范围你说的是“虚”的?在IIS中有虚拟文件夹,ASP.NET中有一个虚拟路径的概念。两者不一定相同。 – jrista 2009-08-20 20:53:41

+0

我的意思是在asp.net中的虚拟路径。谢谢你的收获。 – brad 2009-08-20 20:55:51

回答

3

将在Path.IsPathRooted方法的工作?

你生成的代码是:

public void Foo(String path) 
{ 
    if(!Path.IsPathRooted(path)) 
    { 
     path = Server.MapPath(path); 
    } 

    // do stuff with path 
} 
+0

呜呼!这就像一个魅力。但是我希望术语更加一致。非根路径与虚拟路径相同吗? – brad 2009-08-20 20:56:32

+0

就像你说的,这主要是一个术语问题。您正在使用“虚拟”,但更正确的术语将是“相对的”。因此任何没有绝对路径的路径(即C:\ Folder \ file.txt)都必须与当前目录相关。 – akmad 2009-08-20 21:04:03