当前程序相关
string str1 = Directory.GetCurrentDirectory();
Console.WriteLine(“应用程序当前工作路径:”+str1.ToString());
string str2 = AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
Console.WriteLine(“获取或设置包含该应用程序的目录的名称:”+str2.ToString());
string str3= System.AppDomain.CurrentDomain.BaseDirectory;
Console.WriteLine(“当前应用程序域的基目录:”+str3.ToString());
string str4 = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
Console.WriteLine(“获取和设置包括该应用程序的目录的名称:”+str4.ToString());
输出结果为:
- 应用程序当前工作路径:D:\资源文件\学习资料\WPF\借鉴案例\测试集合\FirstTest\bin\Debug
- 获取或设置包含该应用程序的目录的名称:D:\资源文件\学习资料\WPF\借鉴案例\测试集合\FirstTest\bin\Debug\
- 当前应用程序域的基目录:D:\资源文件\学习资料\WPF\借鉴案例\测试集合\FirstTest\bin\Debug\
- 获取和设置包括该应用程序的目录的名称:D:\资源文件\学习资料\WPF\借鉴案例\测试集合\FirstTest\bin\Debug\
系统特殊文件路径获取
System.Environment.GetFolderPath(SpecialFolder)
例如:
System.Environment.GetFolderPath(Environment.SpecialFolder.Desktop) = C:\Users\zhzhx\Desktop //逻辑桌面,而不是物理文件系统位置。
System.Environment.GetFolderPath(Environment.SpecialFolder.Programs) = C:\Users\zhzhx\AppData\Roaming\Microsoft\Windows\Start Menu\Programs //包含用户程序组的目录。
System.Environment.GetFolderPath(Environment.SpecialFolder.Personal) = C:\Users\zhzhx\Documents //用作文档的公共储存库的目录。
System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) = C:\Users\zhzhx\Documents // “我的文档”文件夹。
以下不再一一叙述,同上面所示,只是写出各个Environment.SpecialFolder后缀名所对应的文件夹
- Favorites,//用作用户收藏夹项的公共储存库的目录。
- Startup,//对应于用户的“启动”程序组的目录。
- Favorites,//用作用户收藏夹项的公共储存库的目录。
- Startup,//对应于用户的“启动”程序组的目录。
- Recent, //包含用户最近使用过的文档的目录。
- SendTo ,//包含“发送”菜单项的目录。
- StartMenu ,//包含“开始”菜单项的目录。
- MyMusic ,//“我的音乐”文件夹。
- MyVideos , //文件系统目录,充当属于某个用户的视频的存储库。
- DesktopDirectory , //用于物理上存储桌面上的文件对象的目录。
- MyComputer ,//“我的电脑”文件夹。
- NetworkShortcuts ,//文件系统目录,包含“网上邻居”虚拟文件夹中可能存在的链接对象。
- Fonts ,//包含字体的虚拟文件夹。
- Templates ,//用作文档模板的公共储存库的目录。
- CommonStartMenu , //文件系统目录,包含在所有用户的“开始”菜单上都出现的程序和文件夹。此特殊文件夹仅对
Windows NT 系统有效。 - CommonPrograms , // 存放多个应用程序共享的组件的文件夹。此特殊文件夹仅对 Windows
NT、Windows 2000 和 Windows XP 系统有效。 - CommonStartup ,//文件系统目录,包含在所有用户的“启动”文件夹中都出现的程序。此特殊文件夹仅对 Windows NT
系统有效。 - CommonDesktopDirectory , //文件系统目录,包含在所有用户桌面上出现的文件和文件夹。此特殊文件夹仅对
Windows NT 系统有效。 - ApplicationData ,// 目录,它用作当前漫游用户的应用程序特定数据的公共储存库。
- PrinterShortcuts ,//文件系统目录,包含“打印机”虚拟文件夹中可能存在的链接对象。
- LocalApplicationData ,// 目录,它用作当前非漫游用户使用的应用程序特定数据的公共储存库。
- InternetCache ,//用作 Internet 临时文件的公共储存库的目录。
- Cookies ,//用作 Internet Cookie 的公共储存库的目录。
- History ,//用作 Internet 历史记录项的公共储存库的目录。
- CommonApplicationData ,//目录,它用作所有用户使用的应用程序特定数据的公共储存库。
- Windows ,//Windows 目录或 SYSROOT。它与 %windir% 或 %SYSTEMROOT% 环境变量相对应。
- System ,//“System”目录。
- ProgramFiles ,// “Program files”目录。
- MyPictures ,//“我的图片”文件夹。
- UserProfile ,// 用户的配置文件文件夹。应用程序不应在此级别上创建文件或文件夹;它们应将其数据放在
System.Environment.SpecialFolder.ApplicationData所引用的位置之下。 - SystemX86 ,//Windows“System”文件夹。
- ProgramFilesX86 ,//“Program Files”文件夹。
- CommonProgramFiles ,//用于应用程序间共享的组件的目录。
- CommonProgramFilesX86 ,// “Program Files”文件夹。
- CommonTemplates ,//文件系统目录,包含所有用户都可以使用的模板。此特殊文件夹仅对 Windows NT 系统有效。
- CommonDocuments ,//文件系统目录,包含所有用户共有的文档。此特殊文件夹仅对装有 Shfolder.dll 的
Windows NT 系统、Windows 95 和 Windows98 系统有效。 - CommonAdminTools ,//文件系统目录,包含计算机所有用户的管理工具。
- AdminTools ,//文件系统目录,用于存储各个用户的管理工具。Microsoft Management Console
(MMC) 会将自定义的控制台保存在此目录中,并且此目录将随用户一起漫游。 - CommonMusic , //文件系统目录,充当所有用户共有的音乐文件的存储库。
- CommonPictures ,//文件系统目录,充当所有用户共有的图像文件的存储库。
- CommonVideos ,//文件系统目录,充当所有用户共有的视频文件的存储库。
- Resources , //文件系统目录,包含资源数据。
- LocalizedResources ,//文件系统目录,包含本地化资源数据。
- CommonOemLinks ,//为了实现向后兼容,Windows Vista 中可以识别此值,但该特殊文件夹本身已不再使用。
- CDBurning ,//文件系统目录,充当等待写入 CD 的文件的临时区域。
关于获取上级目录
粗略方法:
string rootPath = "";
string BaseDirectoryPath = AppDomain.CurrentDomain.BaseDirectory; // D:\.....\Debug
Console.WriteLine("应用程序当前工作路径:" + BaseDirectoryPath.ToString());
// 向上回退三级,得到需要的目录
rootPath = BaseDirectoryPath.Substring(0, BaseDirectoryPath.LastIndexOf("\\")); // 第一个\是转义符,所以要写两个
Console.WriteLine("上一级路径:" + rootPath.ToString());
rootPath = rootPath.Substring(0, rootPath.LastIndexOf(@"\")); // 或者写成这种格式
Console.WriteLine("上二级路径:" + rootPath.ToString());
rootPath = rootPath.Substring(0, rootPath.LastIndexOf("\\"));
Console.WriteLine("上三级路径:" + rootPath.ToString());
输出结果:
- 应用程序当前工作路径:D:\资源文件\学习资料\WPF\借鉴案例\测试集合\FirstTest\bin\Debug\
- 上一级路径:D:\资源文件\学习资料\WPF\借鉴案例\测试集合\FirstTest\bin\Debug
- 上二级路径:D:\资源文件\学习资料\WPF\借鉴案例\测试集合\FirstTest\bin
- 上三级路径:D:\资源文件\学习资料\WPF\借鉴案例\测试集合\FirstTest
优雅方式获取父级目录:
- 方法一:
string BaseDirectoryPath = AppDomain.CurrentDomain.BaseDirectory;
Console.WriteLine("应用程序当前工作路径:" + BaseDirectoryPath.ToString());
Directory.SetCurrentDirectory(Directory.GetParent(BaseDirectoryPath).FullName);
string parentPath = Directory.GetCurrentDirectory();
Console.WriteLine("上一级路径:" + parentPath.ToString());
输出结果:
- 应用程序当前工作路径:D:\资源文件\学习资料\WPF\借鉴案例\测试集合\FirstTest\bin\Debug\
- 上一级路径:D:\资源文件\学习资料\WPF\借鉴案例\测试集合\FirstTest\bin\Debug
- 方法二:
Console.WriteLine("上一级路径:" + System.IO.Path.GetFullPath(".."));
Console.WriteLine("上二级路径:" + System.IO.Path.GetFullPath("../.."));//以此类推获取上级路径(通过追加/..)
输出结果:
- 上一级路径:D:\资源文件\学习资料\WPF\借鉴案例\测试集合\FirstTest\bin
- 上二级路径:D:\资源文件\学习资料\WPF\借鉴案例\测试集合\FirstTest