在 C# 中获取可执行路径

Muhammad Maisam Abbas 2023年1月30日 2021年4月29日
  1. 使用 C# 中的 Assembly 类获取可执行路径
  2. 使用 C# 中的 AppDomain 类获取可执行路径
  3. 使用 C# 中的 Path 类获取可执行路径
在 C# 中获取可执行路径

本教程将介绍获取 C# 代码的可执行路径的方法。

使用 C# 中的 Assembly 类获取可执行路径

Assembly表示一个程序集,它是 C# 中通用语言运行时 CLR 应用程序的可重用构建块。Assembly.GetEntryAssembly() 函数用于获取当前执行代码的汇编。我们可以使用 Assembly.GetEntryAssembly().Location 属性​​获取当前正在执行的代码的路径,该属性以字符串变量的形式返回当前的可执行路径。请参见以下代码示例。

using System;
using System.IO;
using System.Reflection;
namespace executable_path
{
    class Program
    {
        static void Main(string[] args)
        {
            string execPath = Assembly.GetEntryAssembly().Location;
            Console.WriteLine(execPath);
        }
    }
}

输出:

C:\Debug\destroy object.exe

在上面的代码中,我们使用 C# 中的 Assembly 类显示了当前代码的可执行路径。我们将 Assembly.GetEntryAssembly().Location 属性返回的值存储在字符串变量 execPath 内,并显示给用户。

使用 C# 中的 AppDomain 类获取可执行路径

上面的方法为我们提供了路径以及可执行文件的名称。如果要获取没有可执行文件名称的目录名称,则可以使用 C# 中的 AppDomain 类。AppDomain 类表示一个应用程序域。应用程序域是在其中执行应用程序的隔离环境。AppDomain.CurrentDomain 属性获取当前应用程序的应用程序域。我们可以使用 AppDomain.CurrentDomain.BaseDirectory 属性获取可执行文件路径,该属性返回目录路径,该路径包含当前代码文件的可执行文件(字符串变量)。以下代码示例向我们展示了如何使用 C# 中的 AppDomain 类获取当前代码的可执行路径。

using System;
using System.IO;
using System.Reflection;
namespace executable_path
{
    class Program
    {
        static void Main(string[] args)
        {
            string execPath = AppDomain.CurrentDomain.BaseDirectory;
            Console.WriteLine(execPath);
        }
    }
}

输出:

C:\Debug\

在上面的代码中,我们使用 C# 中的 AppDomain 类显示了当前代码的可执行路径。我们将 AppDomain.CurrentDomain.BaseDirectory 属性返回的值存储在字符串变量 execPath 内,并将其显示给用户。建议使用此方法,因为与其他两种方法相比,它最简单且所需的代码更少。

使用 C# 中的 Path 类获取可执行路径

Path 类对包含 C# 中文件路径的字符串执行各种操作。Path.GetDirectoryName() 函数可以获取路径指定的目录信息。我们可以将 System.Reflection.Assembly.GetExecutingAssembly().CodeBase 属性用作 Path.GetDirectoryName() 函数的参数,以获取包含当前代码的目录的名称。请参见以下代码示例。

using System;
using System.IO;
using System.Reflection;
namespace executable_path
{
    class Program
    {
        static void Main(string[] args)
        {
            string execPath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().CodeBase);
            Console.WriteLine(execPath);
        }
    }
}

输出:

file:\C:\Users\Maisam\source\repos\executable path\executable path\bin\Debug

在上面的代码中,我们使用 C# 中的 Path 类显示了当前代码的可执行路径。我们将 Path.GetDirectoryName() 函数返回的值存储在字符串变量 execPath 内,并显示给用户。此方法以路径开头的字符串 file:\返回路径。不建议使用此方法,因为与前两种方法相比,它需要更多的代码。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

相关文章 - Csharp Path