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


当前回答

这是对我有用的代码:

string fullName = Assembly.GetEntryAssembly().Location;
string myName = Path.GetFileNameWithoutExtension(fullName);

上面所有的例子都给了我带有vshost或运行dll名称的processName。

其他回答

对于windows应用程序(窗体和控制台),我使用这个:

在VS中添加对System.Windows.Forms的引用,然后:

using System.Windows.Forms;
namespace whatever
{
    class Program
    {
        static string ApplicationName = Application.ProductName.ToString();
        static void Main(string[] args)
        {
            ........
        }
    }
}

无论我是运行实际的可执行文件还是在VS中调试,这对我来说都是正确的。

注意,它返回的是应用程序名称,而不是扩展名。

John

试试这个:

System.Reflection.Assembly.GetExecutingAssembly()

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

为什么没人建议这个,很简单。

Path.GetFileName(Application.ExecutablePath)

如果你只需要应用程序名而不需要扩展名,这是有效的:

Path.GetFileNameWithoutExtension(AppDomain.CurrentDomain.FriendlyName);
System.AppDomain.CurrentDomain.FriendlyName