Относительный путь к абсолютному пути в VB.NET

Я пишу консольное приложение VB.NET, где он принимает относительные пути и выплескивает все имена файлов или ошибку для недопустимого ввода. У меня возникли проблемы с получением PhysicalPath из относительного пути

Пример:

  • Я в папке C:\Documents and Settings\MehdiAnis.ULTIMATEBANGLA\My Documents\Visual Studio 2005\Projects\SP_Sol\SP_Proj\bin\Debug

  • Мое приложение, SP.exe, также находится в той же папке.

  • Я запускаю: "SP.exe ..\". Результатом будет список всех файлов в папке "C:\Documents and Settings\MehdiAnis.ULTIMATEBANGLA\My Documents\Visual Studio 2005\Projects\SP_Sol\SP_Proj\bin"

  • Я запускаю: "SP.exe ..\\..\". Результатом будет список всех файлов в папке "C:\Documents and Settings\MehdiAnis.ULTIMATEBANGLA\My Documents\Visual Studio 2005\Projects\SP_Sol\SP_Proj"

  • Я запускаю: "SP.exe ..\\..\\..\". Результатом будет список всех файлов в папке "C:\Documents and Settings\MehdiAnis.ULTIMATEBANGLA\My Documents\Visual Studio 2005\Projects\SP_Sol"

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

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

Как я могу легко обрабатывать несколько ..\?

Ответ 1

Вы ищете System.IO.Path.GetFullPath(). Он должен обрабатывать любой тип относительного пути.