Ответ 1
Вы ищете System.IO.Path.GetFullPath(). Он должен обрабатывать любой тип относительного пути.
Я пишу консольное приложение 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
Как я могу легко обрабатывать несколько ..\
?
Вы ищете System.IO.Path.GetFullPath(). Он должен обрабатывать любой тип относительного пути.