2009-08-20 2 views
1

Есть ли встроенный метод asp.net для проверки «виртуальности» пути?asp.net - Является ли мой путь виртуальным?

Единственный способ, которым я был в состоянии сделать это до сих пор является следующим блоком попробовать:

public void Foo(String path){ 

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

    // do stuff with path 
} 
+0

В каком объеме вы говорите о «виртуальной»? В IIS есть виртуальные папки, и в ASP.NET существует концепция виртуального пути. Эти два не обязательно совпадают. – jrista

+0

Я имею в виду виртуальный путь в asp.net. Спасибо за уловку. – brad

ответ

3

будет Path.IsPathRooted метод работы в?

Вы Результирующий код будет:

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

    // do stuff with path 
} 
+0

Woohoo! Это работает как шарм. Я бы хотел, чтобы терминология была немного более последовательной. Является ли путь без корней таким же, как виртуальный? – brad

+0

Как вы сказали, это в основном проблема терминологии. Вы используете «виртуальный», но более правильный термин будет «относительным». Таким образом, любой путь, который не имеет абсолютного пути (то есть C: \ Folder \ file.txt), должен относиться к текущему каталогу. – akmad

Смежные вопросы