[C#]Windows系统特殊文件夹路径获取-阿里云开发者社区

开发者社区> 杰克.陈> 正文

[C#]Windows系统特殊文件夹路径获取

简介: 原文:[C#]Windows系统特殊文件夹路径获取 由于软件开发的需要,近期对Windows特殊文件夹(如桌面,我的文档等)路径的查找方法进行了研究,结果如下。
+关注继续查看
原文:[C#]Windows系统特殊文件夹路径获取

由于软件开发的需要,近期对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));
}

在个人计算机中(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\Roaming\Microsoft\Windows\Start Menu
MyMusic folder = C:\Users\CYM\Music
MyVideos folder = C:\Users\CYM\Videos
DesktopDirectory folder = C:\Users\CYM\Desktop
MyComputer folder =
NetworkShortcuts folder = C:\Users\CYM\AppData\Roaming\Microsoft\Windows\Network Shortcuts
Fonts folder = C:\Windows\Fonts
Templates folder = C:\Users\CYM\AppData\Roaming\Microsoft\Windows\Templates
CommonStartMenu folder = C:\ProgramData\Microsoft\Windows\Start Menu
CommonPrograms folder = C:\ProgramData\Microsoft\Windows\Start Menu\Programs
CommonStartup folder = C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup
CommonDesktopDirectory folder = C:\Users\Public\Desktop
ApplicationData folder = C:\Users\CYM\AppData\Roaming
PrinterShortcuts folder = C:\Users\CYM\AppData\Roaming\Microsoft\Windows\Printer Shortcuts
LocalApplicationData folder = C:\Users\CYM\AppData\Local
InternetCache folder = C:\Users\CYM\AppData\Local\Microsoft\Windows\INetCache
Cookies folder = C:\Users\CYM\AppData\Local\Microsoft\Windows\INetCookies
History folder = C:\Users\CYM\AppData\Local\Microsoft\Windows\History
CommonApplicationData folder = C:\ProgramData
Windows folder = C:\Windows
System folder = C:\Windows\system32
ProgramFiles folder = C:\Program Files (x86)
MyPictures folder = C:\Users\CYM\Pictures
UserProfile folder = C:\Users\CYM
SystemX86 folder = C:\Windows\SysWOW64
ProgramFilesX86 folder = C:\Program Files (x86)
CommonProgramFiles folder = C:\Program Files (x86)\Common Files
CommonProgramFilesX86 folder = C:\Program Files (x86)\Common Files
CommonTemplates folder = C:\ProgramData\Microsoft\Windows\Templates
CommonDocuments folder = C:\Users\Public\Documents
CommonAdminTools folder = C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools
AdminTools folder = C:\Users\CYM\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Administrative Tools
CommonMusic folder = C:\Users\Public\Music
CommonPictures folder = C:\Users\Public\Pictures
CommonVideos folder = C:\Users\Public\Videos
Resources folder = C:\Windows\resources
LocalizedResources folder =
CommonOemLinks folder =
CDBurning folder = C:\Users\CYM\AppData\Local\Microsoft\Windows\Burn\Burn

二、使用Enviroment.GetEnvironmentVariable


可以看到这里使用了获取环境变量的功能,所以可以通过这个方式获取环境变量的值,这里也就是指环境变量中存储的文件夹地址。

这里举例说明如何使用这种方式:

string dir = Enviroment.GetEnviromentVariable("Java_Home");

这行代码执行之后,dir的值将变为环境变量“Java_Home”存储的值,即Java的安装路径。

下面的代码将枚举本地系统所有可以获取的值:

foreach (DictionaryEntry de in Environment.GetEnvironmentVariables())

{
      Console.WriteLine("  {0} value = {1}", de.Key, de.Value);
}

在本地系统(64位 Windows10)上运行结果如下:

PROCESSOR_ARCHITEW6432 value = AMD64
COMPUTERNAME value = DESKTOP-MKB01RR
CommonProgramFiles(x86) value = C:\Program Files (x86)\Common Files
HOMEPATH value = \Users\CYM
VisualStudioEdition value = Microsoft Visual Studio Community 2015
TMP value = C:\Users\CYM\AppData\Local\Temp
PROCESSOR_REVISION value = 3a09
PATHEXT value = .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
PkgDefApplicationConfigFile value = C:\Users\CYM\AppData\Local\Microsoft\VisualStudio\14.0\devenv.exe.config
USERDOMAIN_ROAMINGPROFILE value = DESKTOP-MKB01RR
TEMP value = C:\Users\CYM\AppData\Local\Temp
LOCALAPPDATA value = C:\Users\CYM\AppData\Local
PUBLIC value = C:\Users\Public USERDOMAIN value = DESKTOP-MKB01RR
ProgramFiles(x86) value = C:\Program Files (x86)
Path value = C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;D:\Program Files\Java\jre1.8.0_51\bin;D:\Program Files\Java\jre1.8.0_51\jre\bin;C:\Windows\system32\config\systemprofile\.dnx\bin;C:\Program Files\Microsoft DNX\Dnvm\;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Program Files (x86)\MySQL\MySQL Fabric 1.5.4 & MySQL Utilities 1.5.4 1.5\;C:\Program Files (x86)\MySQL\MySQL Fabric 1.5.4 & MySQL Utilities 1.5.4 1.5\Doctrine extensions for PHP\
PROCESSOR_LEVEL value = 6
PROCESSOR_IDENTIFIER value = Intel64 Family 6 Model 58 Stepping 9, GenuineIntel
PSModulePath value = C:\Windows\system32\WindowsPowerShell\v1.0\Modules\
NUMBER_OF_PROCESSORS value = 8
FPS_BROWSER_USER_PROFILE_STRING value = Default
CommonProgramFiles value = C:\Program Files (x86)\Common Files
ClassPath value = .;D:\Program Files\Java\jre1.8.0_51\bin;D:\Program Files\Java\jre1.8.0_51\lib\dt.jar;D:\Program Files\Java\jre1.8.0_51\lib\tools.jar
VisualStudioDir value = C:\Users\CYM\Documents\Visual Studio 2015
ProgramData value = C:\ProgramData
ProgramW6432 value = C:\Program Files
ProgramFiles value = C:\Program Files (x86)
ENABLE_XAML_DIAGNOSTICS_SOURCE_INFO value = 1
Java_Home value = D:\Program Files\Java\jre1.8.0_51
SystemRoot value = C:\Windows
SESSIONNAME value = Console
VisualStudioVersion value = 14.0
CommonProgramW6432 value = C:\Program Files\Common Files
LOGONSERVER value = \\MicrosoftAccount
USERPROFILE value = C:\Users\CYM
MSBuildLoadMicrosoftTargetsReadOnly value = true
VS140COMNTOOLS value = D:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\
VSLANG value = 2052
APPDATA value = C:\Users\CYM\AppData\Roaming HOMEDRIVE value = C:
USERNAME value = CYM
FPS_BROWSER_APP_PROFILE_STRING value = Internet Explorer
PROCESSOR_ARCHITECTURE value = x86
OS value = Windows_NT
ComSpec value = C:\Windows\system32\cmd.exe
SystemDrive value = C:
windir value = C:\Windows
ALLUSERSPROFILE value = C:\ProgramData


以上便是两种常用的系统特殊文件夹的地址获取方式。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Docsify 初始化文件夹
Docsify 初始化文件夹
103 0
C++ 存储指定文件夹下的文件
  指定文件夹地址,然后读取文件夹内容。   file.h #include <string> #include <vector> #include <io.h> /* * 定义于io.h * 1、long _findfirst64i32(const char * _Filename,struct _finddata64i32_t * _FindDa
907 0
Linux 下 Oracle随系统自动启动和关闭
Linux 下实现Oracle随系统自动启动和关闭 实现如下目的:     a、实现开启oracle实例自启动     b、关闭操作系统或重启操作系统前能够正常关闭Oracle数据库 a、实现系统启动oracle实例自启动步骤: 1...
808 0
C#获取windows 10的下载文件夹路径
Windows没有为“下载”文件夹定义CSIDL,并且通过Environment.SpecialFolder枚举无法使用它。 但是,新的Vista 知名文件夹 API确实使用ID定义它FOLDERID_Downloads。
1103 0
+关注
杰克.陈
一个安静的程序猿~
10427
文章
2
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载