c#取得控制台应用程序根目录
1、取得控制台应用程序的根目录方法
方法1、Environment.CurrentDirectory 取得或设置当前工作目录的完整限定路径
方法2、AppDomain.CurrentDomain.BaseDirectory 获取基目录,它由程序集冲突解决程序用来探测程序集
//使用path获取当前应用程序集的执行的上级目录
dir = Path.GetFullPath("..");
//使用path获取当前应用程序集的执行目录的上级的上级目录
dir = Path.GetFullPath("../..");
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;//获取启动了应用程序的可执行文件的路径,包括可执行文件的名称
4、通过注册表方式获取Windows服务安装目录
/// <summary> /// 获取服务安装路径 /// </summary> /// <param name="ServiceName"></param> /// <returns></returns> public static string GetWindowsServiceInstallPath(string ServiceName) { string key = @"SYSTEM\CurrentControlSet\Services\" + ServiceName; string path = Registry.LocalMachine.OpenSubKey(key).GetValue("ImagePath").ToString(); //替换掉双引号 path = path.Replace("\"", string.Empty); FileInfo fi = new FileInfo(path); return fi.Directory.ToString(); }
5、获取某个目录的父目录
from:http://www.dengyukeji.com/thread-135-1-1.html //获取当前运行路径的上级目录(父目录) System.IO.DirectoryInfo topDir = System.IO.Directory.GetParent(System.Environment.CurrentDirectory); //继续获取上级的上级的上级的目录。 string pathto = topDir.Parent.Parent.FullName; //注意一个Parent获取上一级的目录。