由于软件开发的需要,近期对Windows特殊文件夹(如桌面,我的文档等)路径的查找方法进行了研究,结果如下。
获取特殊文件夹的方法不止一种,下面列出常用的几个方式。
一、使用 Environment.SpecialFolder 与 Enviroment.GetFolderPath()
简单直接的获取办法,能够获取系统自带的特殊文件夹的路径,而用户在环境变量中定义的路径(如配置Java添加的ClassPath等)不能查找。
这里举例说明如何使用这种方式:
string dir = Enviroment.GetFolderPath(Enviroment.SpecialFolder.Desktop);
这段代码执行后,dir的值就会变为本地系统的桌面文件夹路径。
下面这段代码枚举出了所有可以被这种方法获取的特殊文件夹及其路径:
foreach (Environment.SpecialFolder s in Enum.GetValues(typeof(Environment.SpecialFolder)))
{
Console.WriteLine("{0} folder = {1}", s, Environment.GetFolderPath(s));
}
{
Console.WriteLine("{0} folder = {1}", s, Environment.GetFolderPath(s));
}
在个人计算机中(64位 Windows10系统)运行结果如下:
Desktop folder = C:\Users\CYM\Desktop
Programs folder = C:\Users\CYM\AppData\Roaming\Microsoft\Windows\Start Menu\Programs
MyDocuments folder = C:\Users\CYM\Documents
MyDocuments folder = C:\Users\CYM\Documents
Favorites folder = C:\Users\CYM\Favorites
Startup folder = C:\Users\CYM\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
Recent folder = C:\Users\CYM\AppData\Roaming\Microsoft\Windows\Recent
SendTo folder = C:\Users\CYM\AppData\Roaming\Microsoft\Windows\SendTo
StartMenu folder = C:\Users\CYM\AppData\
Programs folder = C:\Users\CYM\AppData\Roaming\Microsoft\Windows\Start Menu\Programs
MyDocuments folder = C:\Users\CYM\Documents
MyDocuments folder = C:\Users\CYM\Documents
Favorites folder = C:\Users\CYM\Favorites
Startup folder = C:\Users\CYM\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
Recent folder = C:\Users\CYM\AppData\Roaming\Microsoft\Windows\Recent
SendTo folder = C:\Users\CYM\AppData\Roaming\Microsoft\Windows\SendTo
StartMenu folder = C:\Users\CYM\AppData\