.NET 程序程序路径问题

日期 2020-11-14 分组 .NET 标签 .NET标签 问题 3分钟 · 593字

获取应用程序相关的路径或文件名

通过 Assembly 类

官方文档说明:表示一个程序集,它是一个可重用、无版本冲突并且可自我描述的公共语言运行时应用程序构建基块。

1
var t = Assembly.GetEntryAssembly().Location;
2
Console.WriteLine(t);
3
4
// 在 .NET Framework 下的命令行应用程序输出
5
// 输出: D:\Test\Test.exe
6
// 在 .NET Core 下的命令行应用程序输出
7
// 输出: D:\Test\Test.dll

获取默认应用程序域中的进程可执行文件。 在其他的应用程序域中,这是由 ExecuteAssembly(String) 执行的第一个可执行文件。也就是应用程序运行的第一个可执行文件。

通过 AppDomain 类

官方文档说明:表示应用程序域,它是一个应用程序在其中执行的独立环境。也即获取当前程序(可执行文件)运行的根目录

1
var t = AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
2
var t = AppDomain.CurrentDomain.BaseDirectory;
3
Console.WriteLine(t);
4
5
// 输出: D:\Test\

通过 Process 类

官方文档说明:提供对本地和远程进程的访问权限并使你能够启动和停止本地系统进程。

D:\Test\Test.exe
1
var t = Process.GetCurrentProcess().MainModule.FileName;
2
Console.WriteLine(t);
3

通过 Directory 类

公开用于通过目录和子目录进行创建、移动和枚举的静态方法

1
var t = Directory.GetCurrentDirectory();
2
Console.WriteLine(t);
3
4
// 输出: D:\Test

通过 IWebHostEnvironment 接口

在 ASP.Net Core Web 应用程序中,我们可以通过注入的方式,获取 IWebHostEnvironment 对象,通过他的相应属性获取路径。

1
public class HomeController : Controller
2
{
3
private readonly IWebHostEnvironment _webHostEnvironment;
4
public HomeController(IWebHostEnvironment webHostEnvironment)
5
{
6
this._webHostEnvironment = webHostEnvironment;
7
}
8
public async Task<IActionResult> UploadImg()
9
{
10
string path = _webHostEnvironment.ContentRootPath;
11
}
12
}

路径的拼接

获取应用程序的某个配置文件

1
var rootPath = AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
2
var testPath = Path.Combine(rootPath, "config", "test.conf");
上一篇: ASP.NET Core MVC Razor页面在运行的时候进行编译
下一篇: 序列化与反序列化