2010-04-07 97 views
11

我正在寫一個VB.NET控制檯應用程序,它在其中獲取相對路徑並吐出所有文件名,或者輸出無效的錯誤。我有從相對路徑麻煩PhysicalPathVB.NET中絕對路徑的相對路徑

例子:

  1. 我在文件夾C:\Documents and Settings\MehdiAnis.ULTIMATEBANGLA\My Documents\Visual Studio 2005\Projects\SP_Sol\SP_Proj\bin\Debug

  2. 我的應用程序,SP.exe,也是在同一個文件夾中。

  3. 我運行:"SP.exe ..\"。輸出將是文件夾中所有文件的列表"C:\Documents and Settings\MehdiAnis.ULTIMATEBANGLA\My Documents\Visual Studio 2005\Projects\SP_Sol\SP_Proj\bin"

  4. 我運行:"SP.exe ..\\..\"。輸出將是文件夾中所有文件的列表"C:\Documents and Settings\MehdiAnis.ULTIMATEBANGLA\My Documents\Visual Studio 2005\Projects\SP_Sol\SP_Proj"

  5. 我運行:"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 

我怎樣才能輕鬆地處理多個..\

回答

22

您正在尋找System.IO.Path.GetFullPath()。它應該處理任何類型的相對路徑。

+0

+1,打我吧! :) – 2010-04-07 02:39:53

+0

謝謝,它的工作! – 2010-04-07 03:33:40

+0

@Mehdi:由於這看起來像是解決問題的辦法,因此最好使用上/下箭頭旁邊左側的複選標記將其標記爲答案。 – 2010-04-07 22:02:50