2010-04-07 50 views
11

Estoy escribiendo una aplicación de consola VB.NET donde toma rutas de acceso relativas y escupe todos los nombres de los archivos, o un error de entrada no válida. Estoy teniendo problemas para conseguir PhysicalPath de ruta relativaRuta relativa a la ruta absoluta en VB.NET

Ejemplo:

  1. estoy en carpeta C:\Documents and Settings\MehdiAnis.ULTIMATEBANGLA\My Documents\Visual Studio 2005\Projects\SP_Sol\SP_Proj\bin\Debug

  2. Mi solicitud, SP.exe, también está en la misma carpeta.

  3. Ejecuto: "SP.exe ..\". El resultado será una lista de todos los archivos en la carpeta "C:\Documents and Settings\MehdiAnis.ULTIMATEBANGLA\My Documents\Visual Studio 2005\Projects\SP_Sol\SP_Proj\bin"

  4. Ejecuto: "SP.exe ..\\..\". El resultado será una lista de todos los archivos en la carpeta "C:\Documents and Settings\MehdiAnis.ULTIMATEBANGLA\My Documents\Visual Studio 2005\Projects\SP_Sol\SP_Proj"

  5. Ejecuto: "SP.exe ..\\..\\..\". La salida será una lista de todos los archivos en la carpeta "C:\Documents and Settings\MehdiAnis.ULTIMATEBANGLA\My Documents\Visual Studio 2005\Projects\SP_Sol"

Actualmente estoy manejando una ruta relativa, pero no más:

If Source.IndexOf("..\") = 0 Then 
     Dim Sibling As String = Directory.GetParent(Directory.GetCurrentDirectory()).ToString()()) 
     Source = Source.Replace("..\", Sibling) 
    End If 

¿Cómo se puede manejar con facilidad múltiples ..\?

Respuesta

22

Está buscando System.IO.Path.GetFullPath(). Debe manejar cualquier tipo de ruta relativa.

+0

+1, ¡pásame! :) –

+0

Gracias, funcionó! –

+0

@Mehdi: como parece que fue la solución a su problema, sería una buena idea marcarlo como la respuesta usando la marca de verificación a la izquierda junto a las flechas arriba/abajo. –

Cuestiones relacionadas