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


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

Пример:

  1. Я нахожусь в папке C:Documents and SettingsMehdiAnis.ULTIMATEBANGLAMy DocumentsVisual Studio 2005ProjectsSP_SolSP_ProjbinDebug

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

  3. Я бегу: "SP.exe ..". Результатом будет список всех файлов в папке "C:Documents and SettingsMehdiAnis.ULTIMATEBANGLAMy DocumentsVisual Studio 2005ProjectsSP_SolSP_Projbin"

  4. Я бегу: "SP.exe ..\..". Выход будет будьте списком всех файлов в папке "C:Documents and SettingsMehdiAnis.ULTIMATEBANGLAMy DocumentsVisual Studio 2005ProjectsSP_SolSP_Proj"

  5. Я бегу: "SP.exe ..\..\..". Результатом будет список всех файлов в папке "C:Documents and SettingsMehdiAnis.ULTIMATEBANGLAMy DocumentsVisual Studio 2005ProjectsSP_Sol"

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

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

Как я могу легко справиться с несколькими ..?

1 11

1 ответ:

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