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

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: 原文:[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


以上便是两种常用的系统特殊文件夹的地址获取方式。
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1天前
|
存储 运维 BI
基于C#-VC-MSSQL开发的全套PACS系统源码 3D PACS系统源码:可实现医学影像获取、存档、观片、处理、打印多项应用
PACS的功能价值在于通过连接不同的影像设备,存储与管理图像,图像的调用与后处理,实现资源共享,降低成本,达到提高工作效率、提升医疗水平的目地;
7 1
基于C#-VC-MSSQL开发的全套PACS系统源码  3D PACS系统源码:可实现医学影像获取、存档、观片、处理、打印多项应用
|
1天前
|
Windows
Windows 系统下安装
在Windows上安装Julia,从官网下载安装程序。32位版本兼容32/64位系统,但64位仅用于64位Windows。运行安装向导,简单点击Next,建议选中添加到PATH选项。完成后,Julia将可在终端使用,默认路径如C:\Users\BAIDU\AppData\Local\Programs\Julia 1.7.2。
|
1天前
|
机器学习/深度学习 Linux 网络安全
ssh远程访问windows系统下的jupyterlab
ssh远程访问windows系统下的jupyterlab
13 3
|
1天前
|
并行计算 Ubuntu TensorFlow
23.10.02更新 windows系统下的Tensorflow安装(图多详细)
23.10.02更新 windows系统下的Tensorflow安装(图多详细)
10 0
23.10.02更新 windows系统下的Tensorflow安装(图多详细)
|
4天前
|
存储 安全 搜索推荐
Windows之隐藏特殊文件夹(自定义快捷桌面程序)
Windows之隐藏特殊文件夹(自定义快捷桌面程序)
|
9天前
|
网络协议 数据安全/隐私保护 iOS开发
苹果MacOS电脑使用内网穿透轻松远程桌面本地Windows系统电脑
苹果MacOS电脑使用内网穿透轻松远程桌面本地Windows系统电脑
|
11天前
|
Windows
Windows系统下安装分布式事务组件Seata
Windows系统下安装分布式事务组件Seata
|
20天前
|
开发框架 前端开发 .NET
C#编程与Web开发
【4月更文挑战第21天】本文探讨了C#在Web开发中的应用,包括使用ASP.NET框架、MVC模式、Web API和Entity Framework。C#作为.NET框架的主要语言,结合这些工具,能创建动态、高效的Web应用。实际案例涉及企业级应用、电子商务和社交媒体平台。尽管面临竞争和挑战,但C#在Web开发领域的前景将持续拓展。
|
20天前
|
SQL 开发框架 安全
C#编程与多线程处理
【4月更文挑战第21天】探索C#多线程处理,提升程序性能与响应性。了解C#中的Thread、Task类及Async/Await关键字,掌握线程同步与安全,实践并发计算、网络服务及UI优化。跟随未来发展趋势,利用C#打造高效应用。
|
20天前
|
存储 安全 网络安全
C#编程的安全性与加密技术
【4月更文挑战第21天】C#在.NET框架支持下,以其面向对象和高级特性成为安全软件开发的利器。本文探讨C#在安全加密领域的应用,包括使用System.Security.Cryptography库实现加密算法,利用SSL/TLS保障网络传输安全,进行身份验证,并强调编写安全代码的重要性。实际案例涵盖在线支付、企业应用和文件加密,展示了C#在应对安全挑战的同时,不断拓展其在该领域的潜力和未来前景。