2010-04-07 10 views
11

Sto scrivendo un'applicazione di console VB.NET in cui sono necessari percorsi relativi e sputa tutti i nomi di file o un errore per l'input non valido. Sto avendo difficoltà a raggiungere PhysicalPath dal percorso relativoPercorso relativo al percorso assoluto in VB.NET

Esempio:

  1. Sono nella cartella C:\Documents and Settings\MehdiAnis.ULTIMATEBANGLA\My Documents\Visual Studio 2005\Projects\SP_Sol\SP_Proj\bin\Debug

  2. La mia applicazione, SP.exe, è anche nella stessa cartella.

  3. Corro: "SP.exe ..\". L'output sarà un elenco di tutti i file nella cartella "C:\Documents and Settings\MehdiAnis.ULTIMATEBANGLA\My Documents\Visual Studio 2005\Projects\SP_Sol\SP_Proj\bin"

  4. Corro: "SP.exe ..\\..\". L'output sarà un elenco di tutti i file nella cartella "C:\Documents and Settings\MehdiAnis.ULTIMATEBANGLA\My Documents\Visual Studio 2005\Projects\SP_Sol\SP_Proj"

  5. Corro: "SP.exe ..\\..\\..\". L'uscita sarà un elenco di tutti i file presenti nella cartella "C:\Documents and Settings\MehdiAnis.ULTIMATEBANGLA\My Documents\Visual Studio 2005\Projects\SP_Sol"

Attualmente sto Presa Uno percorso relativo, ma non di più:

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

Come posso gestire facilmente ..\ multipla?

risposta

22

Stai cercando System.IO.Path.GetFullPath(). Dovrebbe gestire qualsiasi tipo di percorso relativo.

+0

+1, bastonatemi! :) –

+0

Grazie, ha funzionato! –

+0

@Mehdi: Poiché sembra che fosse la soluzione al tuo problema, sarebbe una buona idea contrassegnarlo come risposta usando il segno di spunta a sinistra accanto alle frecce su/giù. –