c# 获取路径的几种方法

1、取得控制台应用程序的根目录方法

方法1、Environment.CurrentDirectory 取得或设置当前工作目录的完整限定路径
方法2、AppDomain.CurrentDomain.BaseDirectory 获取基目录,它由程序集冲突解决程序用来探测程序集

2、取得Web应用程序的根目录方法

方法1、HttpRuntime.AppDomainAppPath.ToString();//获取承载在当前应用程序域中的应用程序的应用程序目录的物理驱动器路径。用于App_Data中获取
方法2、Server.MapPath("") 或者 Server.MapPath("~/");//返回与Web服务器上的指定的虚拟路径相对的物理文件路径
方法3、Request.ApplicationPath;//获取服务器上ASP.NET应用程序的虚拟应用程序根目录

3、取得WinForm应用程序的根目录方法

1、Environment.CurrentDirectory.ToString();//获取或设置当前工作目录的完全限定路径
2、Application.StartupPath.ToString();//获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称
3、Directory.GetCurrentDirectory();//获取应用程序的当前工作目录
4、AppDomain.CurrentDomain.BaseDirectory;//获取基目录,它由程序集冲突解决程序用来探测程序集
5、AppDomain.CurrentDomain.SetupInformation.ApplicationBase;//获取或设置包含该应用程序的目录的名称

其中:以下两个方法可以获取执行文件名称
1、Process.GetCurrentProcess().MainModule.FileName;//可获得当前执行的exe的文件名。
2、Application.ExecutablePath;//获取启动了应用程序的可执行文件的路径,包括可执行文件的名称

-------------------------------------------------------------------------------------------------------------------------

以上是从网上随便找别人的总结的,下面是自己工作中遇到的问题,自己做了个控制台程序,然后用任务计划程序定时执行,执行的时候发现生成的路径和直接执行控制台生成的文件路径不一致!

最开始用的System.IO.Directory.GetCurrentDirectory();  发现生成的路径是相对于 ,任务计划程序的相对路径,然后换成Environment.CurrentDirectory  返现路径是 进程的启动路径,

最后AppDomain.CurrentDomain.BaseDirectory  终于把问题解决了,这个是获取项目 的 基目录

原文地址:https://www.cnblogs.com/yangjinwang/p/4736909.html