【发布时间】:2011-01-14 00:58:47
【问题描述】:
如何获取正在运行的程序的绝对路径?
【问题讨论】:
-
您的代码是在 exe 中还是在 .dll 程序集中?
如何获取正在运行的程序的绝对路径?
【问题讨论】:
为此,您可以使用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"
对于控制台应用程序,您可以使用System.Reflection.Assembly.GetExecutingAssembly().Location,只要调用是在控制台应用程序本身的代码中进行的,如果您从另一个 dll 或插件中调用它,这将返回该 DLL 的位置,而不是可执行文件。
【讨论】:
我用:
Imports System.IO
Dim strPath as String=Directory.GetCurrentDirectory
【讨论】:
你也可以使用:
Dim strPath As String = AppDomain.CurrentDomain.BaseDirectory
【讨论】:
您可以通过此代码获取路径
Dim CurDir as string = My.Application.Info.DirectoryPath
【讨论】:
设置您自己的应用程序路径
将 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"
【讨论】:
如果路径是驱动器,路径中也会出现斜杠,这时候使用会出问题。为了统一,最好的解决办法是下面的命令。
Dim FileName As String = "MyFileName"
Dim MyPath1 As String = Application.StartupPath().TrimEnd("\") & "\" & FileName
Dim MyPath2 As String = My.Application.Info.DirectoryPath.TrimEnd("\") & "\" & FileName
【讨论】: