14

I am writing a VB.NET console application where it takes relative paths and spits out all file names, or an error for invalid input. I am having trouble getting PhysicalPath from relative path

Example:

  1. I am in folder C:\Documents and Settings\MehdiAnis.ULTIMATEBANGLA\My Documents\Visual Studio 2005\Projects\SP_Sol\SP_Proj\bin\Debug

  2. My application, SP.exe, is also in the same folder.

  3. I run: "SP.exe ..\". The output will be a list of all files in the folder "C:\Documents and Settings\MehdiAnis.ULTIMATEBANGLA\My Documents\Visual Studio 2005\Projects\SP_Sol\SP_Proj\bin"

  4. I run: "SP.exe ..\\..\". The output will be a list of all files in the folder "C:\Documents and Settings\MehdiAnis.ULTIMATEBANGLA\My Documents\Visual Studio 2005\Projects\SP_Sol\SP_Proj"

  5. I run: "SP.exe ..\\..\\..\". The output will be a list of all files in the folder "C:\Documents and Settings\MehdiAnis.ULTIMATEBANGLA\My Documents\Visual Studio 2005\Projects\SP_Sol"

Currently I am handling one relative path, but no more:

    If Source.IndexOf("..\") = 0 Then
        Dim Sibling As String = Directory.GetParent(Directory.GetCurrentDirectory()).ToString()())
        Source = Source.Replace("..\", Sibling)
    End If

How can I easily handle multiple ..\?

Zoe
  • 27,060
  • 21
  • 118
  • 148
Mehdi Anis
  • 358
  • 1
  • 9
  • 17

1 Answers1

26

You're looking for System.IO.Path.GetFullPath(). It should handle any type of relative path.

shf301
  • 31,086
  • 2
  • 52
  • 86
  • @Mehdi: Since this looks like it was the solution to your problem, it would be a good idea to mark it as the answer using the checkmark on the left next to the up/down arrows. – Zach Johnson Apr 07 '10 at 22:02
  • @Zach Johnson: Thanks for showing the CheckMark (TickMark Icon to accept an answer. I didn't know, icon apperas in gray feels like inactive. – Mehdi Anis Apr 08 '10 at 13:19