Я пишу консольное приложение 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 () . Он должен обрабатывать любой тип относительного пути.