Caminho relativo para o caminho absoluto em vb.net
-
25-09-2019 - |
Pergunta
Estou escrevendo um aplicativo de console vb.net, onde ele segue caminhos relativos e cospe todos os nomes de arquivos ou um erro para entrada inválida. Estou tendo problemas para obter o PhysicalPath do caminho relativo
Exemplo:
Estou na pasta
C:\Documents and Settings\MehdiAnis.ULTIMATEBANGLA\My Documents\Visual Studio 2005\Projects\SP_Sol\SP_Proj\bin\Debug
Minha aplicação,
SP.exe
, também está na mesma pasta.Eu corro:
"SP.exe ..\"
. A saída será uma lista de todos os arquivos na pasta"C:\Documents and Settings\MehdiAnis.ULTIMATEBANGLA\My Documents\Visual Studio 2005\Projects\SP_Sol\SP_Proj\bin"
Eu corro:
"SP.exe ..\\..\"
. A saída será uma lista de todos os arquivos na pasta"C:\Documents and Settings\MehdiAnis.ULTIMATEBANGLA\My Documents\Visual Studio 2005\Projects\SP_Sol\SP_Proj"
Eu corro:
"SP.exe ..\\..\\..\"
. A saída será uma lista de todos os arquivos na pasta"C:\Documents and Settings\MehdiAnis.ULTIMATEBANGLA\My Documents\Visual Studio 2005\Projects\SP_Sol"
Atualmente estou lidando com um caminho relativo, mas não mais:
If Source.IndexOf("..\") = 0 Then
Dim Sibling As String = Directory.GetParent(Directory.GetCurrentDirectory()).ToString()())
Source = Source.Replace("..\", Sibling)
End If
Como posso lidar facilmente com múltiplos ..\
?
Solução
Você está procurando System.io.path.getfullpath (). Deve lidar com qualquer tipo de caminho relativo.