📜  C# 获取项目目录 - C# (1)

📅  最后修改于: 2023-12-03 15:13:52.623000             🧑  作者: Mango

C# 获取项目目录

在C#项目开发中,经常需要获取项目的目录路径,以便进行文件操作、配置读写等操作。本文将介绍几种获取项目目录路径的方法。

方法一:使用AppDomain.CurrentDomain.BaseDirectory

使用AppDomain.CurrentDomain.BaseDirectory可以获取应用程序的基目录,也就是项目的目录路径。

string path = AppDomain.CurrentDomain.BaseDirectory;

这种方法最常用,但有一个小问题:当程序运行在其他目录下时,获取的可能不是项目的目录路径,而是运行时的目录路径。

方法二:使用Directory.GetCurrentDirectory()

使用Directory.GetCurrentDirectory()可以获取当前进程的工作目录,也就是被打开的可执行文件所在的目录。因此,如果把可执行文件放到了项目的目录下运行的话,这种方法就可以获取到项目的目录路径。

string path = Directory.GetCurrentDirectory();
方法三:使用Assembly.GetExecutingAssembly().Location

使用Assembly.GetExecutingAssembly().Location可以获取当前执行的程序集文件的路径,然后使用Path.GetDirectoryName()方法获取该路径的目录路径。

string path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

这种方法可以获取到项目路径,但需要注意如果你在应用程序里面引用了其他程序集的话,这个方法返回的路径就不是项目的路径,而是那个程序集的路径。

方法四:使用System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName

使用System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName获取当前进程的可执行文件路径,然后使用Path.GetDirectoryName()方法获取该路径的目录路径。

string path = Path.GetDirectoryName(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName);

这种方法可以获取到项目路径,但需要注意如果你在应用程序里面引用了其他程序集的话,这个方法返回的路径就不是项目的路径,而是那个程序集的路径。

总结

以上就是几种获取项目目录路径的方法。使用哪种取决于运行环境和具体需求。建议使用方法一或方法二,这两种方法效果较好,与运行环境无关。