在C#中我如何获取正在运行的文件的名称?

时间:2011-11-16 19:04:08

标签: c# .net reflection .net-assembly

我想知道如何实际获取正在运行的文件的名称,而不是程序集名称,而是C#.NET中文件的名称,

我试过

System.Reflection.Assembly.GetEntryAssembly().GetName().Name

这给出了程序集的名称,但我正在寻找exe文件的名称。

谢谢!

6 个答案:

答案 0 :(得分:7)

 System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName

如果你想要可执行文件:

System.Reflection.Assembly.GetEntryAssembly().Location

如果您只想要文件* name *而不是路径,请使用:

Path.GetFileName(System.Reflection.Assembly.GetEntryAssembly().Location)

答案 1 :(得分:3)

System.Reflection.Assembly.GetEntryAssembly().Location

答案 2 :(得分:2)

System.Windows.Forms.Application.ExecutablePath

"获取启动应用程序的可执行文件的路径,包括可执行文件名。"

http://msdn.microsoft.com/en-us/library/system.windows.forms.application.executablepath.aspx

答案 3 :(得分:1)

如果你知道你的程序集是你正在运行的EXE(我推断可能是通过使用“GetEntryAssembly()”),你可以使用Process.GetCurrentProcess()。ProcessName。这将返回程序的EXE名称。

答案 4 :(得分:0)

http://msdn.microsoft.com/en-us/library/system.environment.getcommandlineargs.aspx

查看此数组中的第一个元素。

 System.Environment.GetCommandLineArgs()[0];

您还可以查看args[0]

中的main(string args[])

即使重命名程序,这也应该改变。

答案 5 :(得分:0)

您可以使用:

System.Reflection.Assembly.GetExecutingAssembly().Location