如何在C#中获取当前可执行文件的名称?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (10)
  • 关注 (0)
  • 查看 (159)

我需要获取当前可执行文件的名称。在C/C++中,可以从args[0]中获取,但是在C#中,我并不知道如何获取。

提问于
用户回答回答于
用户回答回答于
  • System.Reflection.Assembly.GetEntryAssembly().Location如果程序集未在内存中加载,则返回exe的位置。
  • System.Reflection.Assembly.GetEntryAssembly().CodeBase以URL的形式来返回位置。
用户回答回答于

这里还有几种办法:

  • System.Reflection.Assembly.GetExecutingAssembly().GetName().Name
  • Path.GetFileName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase
用户回答回答于
用户回答回答于
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name;

会返回应用程序的文件名,例如:“MyApplication.exe”

用户回答回答于
System.Reflection.Assembly.GetExecutingAssembly()

这将返回一个System.Reflection.Assembly实例,它包含有关当前应用程序的所有数据。 我认为Location属性可能会被特定。

用户回答回答于
string fullName = Assembly.GetEntryAssembly().Location;
string myName = Path.GetFileNameWithoutExtension(fullName);

以上示例给出了带有vshost或者是正在运行的ddl名字的进程名称。

用户回答回答于
用户回答回答于

System.Diagnostics.Process.GetCurrentProcess()用来获取当前正在运行的进程。可以通过使用ProcessName属性来获取名称。以下为控制台应用程序示例代码。

using System;
using System.Diagnostics;

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine(Process.GetCurrentProcess().ProcessName);
        Console.ReadLine();
    }
}
用户回答回答于

System.AppDomain.CurrentDomain.FriendlyName-返回文件名以及扩展名(例如MyApp.exe)。

System.Diagnostics.Process.GetCurrentProcess().ProcessName-只返回文件名(例如MyApp)。

System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName-返回完整路径及文件名(例如C:\exams\process\MyApp.exe)。然后你可以把它传递给System.IO.Path.GetFileName()System.IO.Path.GetFileNameWithoutExtension()取得与上述相同的结果。

扫码关注云+社区

领取腾讯云代金券