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:

  1. Estou na pasta C:\Documents and Settings\MehdiAnis.ULTIMATEBANGLA\My Documents\Visual Studio 2005\Projects\SP_Sol\SP_Proj\bin\Debug

  2. Minha aplicação, SP.exe, também está na mesma pasta.

  3. 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"

  4. 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"

  5. 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 ..\?

Foi útil?

Solução

Você está procurando System.io.path.getfullpath (). Deve lidar com qualquer tipo de caminho relativo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top