2010-04-07 382 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