开发者社区> 杰克.陈> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

[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


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

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

相关文章
C#编写Windows服务
一.Windows服务介绍: 一个Windows服务程序是在Windows操作系统下能完成特定功能的可执行的应用程序。Windows服务程序虽然是可执行的,但是它不像一般的可执行文件通过双击就能开始运行了,它必须有特定的启动方式。
666 0
【镜像更新】Windows Server 2019 数据中心版
信息摘要: Windows Server 2019 数据中心版镜像更新适用客户: 使用Windows Server的用户版本/规格功能: 镜像ID: win2019_64_dtc_1809_zh-cn_40G_alibase_20190318.
4601 0
Windows server2003配置ftp服务
版权声明:欢迎转载,请注明沉默王二原创。 https://blog.csdn.net/qing_gee/article/details/45010139 前言:如果你已经非常清楚的掌握了Windows server 2003的安全机制,那么你可以通过开启Windows自带的ftp服务进行使用,不过很多情况下,这不安全,但是我会告诉你方法,这需要你的Windows安装目录下有对应的ftp安装包。
694 0
+关注
杰克.陈
一个安静的程序猿~
10424
文章
2
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载