如何在C#中检索控制台应用程序的可执行路径

本文概述

  • A.带有可执行文件的绝对路径
  • B.没有可执行文件的绝对路径
通常, 应用程序应该能够使用相对路径定位其他资源, 而无需用户手动选择一些文件即可正常工作。但是, 在某些情况下, 第三方库需要绝对路径才能正常工作, 因此你需要满足此要求。显然, 我们在谈论内部功能, 因此用户对此一无所知, 因此你可以从应用程序中当前拥有的目录开始构建路径。
在这篇简短的文章中, 我们将与你分享一个简单的代码片段, 以了解基于C#控制台的应用程序的可执行文件的当前路径。
A.带有可执行文件的绝对路径如果你愿意检索可执行文件的绝对路径(包括路径的.exe), 则可能要使用System.Reflection命名空间中的Assembly类。 System.Reflection命名空间包含一些类型, 这些类型通过检查托管程序代码中的程序集, 模块, 成员, 参数和其他实体的元数据来检索其信息。这些类型还可以用于操纵已加载类型的实例, 例如, 挂钩事件或调用方法。 Assembly类本身表示一个程序集(:v), 它是公共语言运行时应用程序的可重用, 可版本控制和自描述的构造块。
你可以使用以下指令检索可执行文件的绝对路径:
using System; using System.Reflection; namespace ConsoleApp1{class Program{static void Main(string[] args){// Retrieve the absolute path of the current executable.string path = Assembly.GetEntryAssembly().Location; // Prints something like:// C:\Users\sdkca\ConsoleApp1\ConsoleApp1\bin\Debug\ConsoleApp1.exeConsole.WriteLine(path); // Pause application to read the output in the consoleConsole.ReadLine(); }}}

B.没有可执行文件的绝对路径如果要检索可执行文件的基本目录, 则不需要使用Reflection名称空间, 而只需从应用程序域访问当前线程的BaseDirectory即可:
using System; namespace ConsoleApp1{class Program{static void Main(string[] args){// Retrieve the absolute path of the current executable.string path = AppDomain.CurrentDomain.BaseDirectory; // Prints something like:// C:\Users\sdkca\ConsoleApp1\ConsoleApp1\bin\Debug\Console.WriteLine(path); // Pause application to read the output in the consoleConsole.ReadLine(); }}}

【如何在C#中检索控制台应用程序的可执行路径】编码愉快!

    推荐阅读