Относительный путь к абсолютному пути в VB.NET - PullRequest
11 голосов
/ 07 апреля 2010

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

Пример:

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

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

  3. Я бегу: "SP.exe ..\". На выходе будет список всех файлов в папке "C:\Documents and Settings\MehdiAnis.ULTIMATEBANGLA\My Documents\Visual Studio 2005\Projects\SP_Sol\SP_Proj\bin"

  4. Я бегу: "SP.exe ..\\..\". На выходе будет список всех файлов в папке "C:\Documents and Settings\MehdiAnis.ULTIMATEBANGLA\My Documents\Visual Studio 2005\Projects\SP_Sol\SP_Proj"

  5. Я бегу: "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 Ответ

22 голосов
/ 07 апреля 2010

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

...