53

我想获取 Windows 窗体应用程序的执行目录的路径。(即可执行文件所在的目录。)

有谁知道.NET 中的内置方法可以做到这一点?

4

8 回答 8

65

在 VB.NET 中

Dim directory as String = My.Application.Info.DirectoryPath

在 C# 中

string directory = AppDomain.CurrentDomain.BaseDirectory;
于 2008-11-17T14:36:11.147 回答
56

Application.Current 导致 appdomain http://msdn.microsoft.com/en-us/library/system.appdomain_members.aspx

这也应该给你装配的位置

AppDomain.CurrentDomain.BaseDirectory

我似乎记得有多种方法可以获取应用程序的位置。但这至少在过去对我有用(我已经有一段时间没有做过winforms编程了:/)

于 2008-11-17T14:41:08.780 回答
17

这可能会有所帮助;

Path.GetDirectoryName(Application.ExecutablePath);

这里也是参考

于 2008-11-17T14:36:59.647 回答
9

System.Windows.Forms.Application.StartupPath会解决你的问题,我想

于 2008-12-01T09:48:38.960 回答
2

这两个示例都在 VB.NET 中。

调试路径:

TextBox1.Text = My.Application.Info.DirectoryPath

EXE路径:

TextBox2.Text = IO.Path.GetFullPath(Application.ExecutablePath)
于 2014-10-07T05:14:28.753 回答
1
string apppath = 
    (new System.IO.FileInfo
    (System.Reflection.Assembly.GetExecutingAssembly().CodeBase)).DirectoryName;
于 2008-11-17T14:50:07.217 回答
1

看一下这个:

Imports System.IO
Imports System.Management

Public Class Form1
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        TextBox1.Text = Path.GetFullPath(Application.ExecutablePath)
        Process.Start(TextBox1.Text)
    End Sub
End Class
于 2011-11-29T07:20:37.047 回答
0
Private Sub Main_Shown(sender As Object, e As EventArgs) Handles Me.Shown
    Dim args() As String = Environment.GetCommandLineArgs()
    If args.Length > 0 Then
        TextBox1.Text = Path.GetFullPath(Application.ExecutablePath)
        Process.Start(TextBox1.Text)   
    End If
End Sub
于 2017-08-09T13:39:29.580 回答