2009-08-20 11 views
1

Existe-t-il une méthode intégrée asp.net pour vérifier la "virtualité" d'un chemin?asp.net - Mon chemin est-il virtuel?

La seule façon que je suis en mesure de le faire jusqu'à présent est avec le bloc d'essai suivant:

public void Foo(String path){ 

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

    // do stuff with path 
} 
+0

Dans ce champ parlez-vous « virtuel »? Il existe des dossiers virtuels dans IIS et le concept d'un chemin virtuel dans ASP.NET. Les deux ne sont pas nécessairement les mêmes. – jrista

+0

Je veux dire un chemin virtuel dans asp.net. Merci pour la capture. – brad

Répondre

3

Est-ce que le travail de la méthode Path.IsPathRooted?

Vous code résultant serait:

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

    // do stuff with path 
} 
+0

Woohoo! Cela fonctionne comme un charme. J'aimerais que la terminologie soit un peu plus cohérente. Un chemin non-root est-il identique à un chemin virtuel? – brad

+0

Comme vous l'avez dit, c'est surtout un problème de terminologie. Vous utilisez "virtuel" mais un terme plus correct serait "relatif". Tout chemin qui n'a pas de chemin absolu (C: \ Folder \ file.txt) devra donc être relatif au répertoire courant. – akmad