【问题标题】:Get program path in VB.NET?在 VB.NET 中获取程序路径?
【发布时间】:2011-01-14 00:58:47
【问题描述】:

如何获取正在运行的程序的绝对路径?

【问题讨论】:

  • 您的代码是在 exe 中还是在 .dll 程序集中?

标签: .net vb.net


【解决方案1】:

为此,您可以使用Application 对象。

启动路径,就是文件夹,使用Application.StartupPath()

Dim appPath As String = Application.StartupPath()

完整的.exe路径,包括最后的program.exe名称:,使用Application.ExecutablePath()

Dim exePath As String = Application.ExecutablePath()

【讨论】:

  • 不允许我申请。这是在我需要导入的命名空间中吗?如果有,是哪个?
  • 我理解StartupPath() 会返回类似"C:\testfolder\"ExecutablePath() 会返回"C:\testfolder\test.exe"
【解决方案2】:

对于控制台应用程序,您可以使用System.Reflection.Assembly.GetExecutingAssembly().Location,只要调用是在控制台应用程序本身的代码中进行的,如果您从另一个 dll 或插件中调用它,这将返回该 DLL 的位置,而不是可执行文件。

【讨论】:

    【解决方案3】:

    我用:

    Imports System.IO
    Dim strPath as String=Directory.GetCurrentDirectory
    

    【讨论】:

    • 返回当前目录,通常不是程序所在的位置。
    【解决方案4】:

    试试这个:My.Application.Info.DirectoryPath[MSDN]

    这是使用 VB.NET 的My 功能。自 .NET Framework 2.0 起,此特定属性可用于所有非 Web 项目类型,包括您需要的控制台应用程序。

    只要您相信 Microsoft 会继续使上述所有项目类型都能正常工作,这比访问其他“更直接”的解决方案更易于使用。

    Dim appPath As String = My.Application.Info.DirectoryPath
    

    【讨论】:

    • @ColeJohnson 我已经在meta 上要求澄清这一点。
    【解决方案5】:

    你也可以使用:

    Dim strPath As String = AppDomain.CurrentDomain.BaseDirectory
    

    【讨论】:

      【解决方案6】:

      您可以通过此代码获取路径

      Dim CurDir as string = My.Application.Info.DirectoryPath
      

      【讨论】:

        【解决方案7】:

        设置您自己的应用程序路径

        将 myPathsValues 调暗为字符串

            TextBox1.Text = Application.StartupPath
            TextBox2.Text = Len(Application.StartupPath)
            TextBox3.Text = Microsoft.VisualBasic.Right(Application.StartupPath, 10)
            myPathsValues = Val(TextBox2.Text) - 9
            TextBox4.Text = Microsoft.VisualBasic.Left(Application.StartupPath, myPathsValues) & "Reports"
        

        【讨论】:

          【解决方案8】:

          如果路径是驱动器,路径中也会出现斜杠,这时候使用会出问题。为了统一,最好的解决办法是下面的命令。

                  Dim FileName As String = "MyFileName"
              Dim MyPath1 As String = Application.StartupPath().TrimEnd("\") & "\" & FileName
              Dim MyPath2 As String = My.Application.Info.DirectoryPath.TrimEnd("\") & "\" & FileName
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-07-26
            • 2015-05-09
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多