我正在编写一个 VB.NET 控制台应用程序,它采用相对路径并输出所有文件名,或者输出无效输入的错误。我在从相对路径获取 PhysicalPath 时遇到问题

例子:

  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

如何轻松处理多个 ..\?

有帮助吗?

解决方案

您正在寻找 System.IO.Path.GetFullPath(). 。它应该处理任何类型的相对路径。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top