我想要获得当前运行程序的名称,即程序的可执行名称。在C/ c++中,你从args[0]中得到它。


当前回答

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

System.Diagnostics.Process.GetCurrentProcess()。ProcessName -返回没有扩展名的文件名(例如MyApp)。

.MainModule System.Diagnostics.Process.GetCurrentProcess()。FileName -返回完整的路径和文件名(例如C:\Examples\Processes\MyApp.exe)。然后,您可以将此传递到System.IO.Path.GetFileName()或System.IO.Path.GetFileNameWithoutExtension()以实现与上述相同的结果。

其他回答

如果您要在。net 6.0或更高版本中发布单文件应用程序,则可以使用Environment。ProcessPath

System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name;

会给你应用的文件名,比如;“MyApplication.exe”

试试这个:

System.Reflection.Assembly.GetExecutingAssembly()

这将返回一个System.Reflection.Assembly实例,其中包含您希望了解的有关当前应用程序的所有数据。我认为Location属性可能会得到你想要的。

System.AppDomain.CurrentDomain.FriendlyName

在。net Core(或Mono)上,当定义进程的二进制文件是Mono或。net Core (dotnet)的运行时二进制文件,而不是您感兴趣的实际应用程序时,大多数答案都不适用。在这种情况下,使用这个:

var myName = Path.GetFileNameWithoutExtension(System.Reflection.Assembly.GetEntryAssembly().Location);