1. 目录(Directory)与文件夹(Folder)的区别

目录是DOS时代的产物,DOS文件系统是以目录树的形式将文件组织起来的,文件全部包含在目录里。任何一个文件的全名,由“目录名+文件名”两部分组成,目录名则是以“根目录+子目录+多级子目录...”组成,其中根目录是以任一26个英文字母加上冒号“:”表示的盘符,目录之间用反斜杠“/”作为路径分隔符分隔;文件名由“文件名称+扩展名”,扩展名以英文句点符号“.”开头,DOS时代的文件名是8.3格式,即文件名称由8个有效的ASCII字符组成,扩展名由以句点“.”开始,跟随3个有效的ASCII字符组成。因此,任何一个文件的全路径名称,都是以根目录开始的。

到了Windows时代,则有了文件夹的概念。每个目录都是一个文件夹,而盘符被称作卷,卷也是一个文件夹。文件名则分为长文件名和短文件名(8.3格式)两个,其表示法上也有区分,这是为了在兼容8.3格式,并增强文件名的表示方式。但是Windows目前版本的完整文件名表示时最大长度限定为260个字符,路径名表示时最大长度限制为248个字符(注:微软试图在新的操作系统上突破路径260字符限制,一部分Windows SDK的扩展库中提供了所谓的BigPath)。重要的是,文件夹还让操作者理解了“桌面”、“我的电脑”(NT 6.0 之后被叫作“计算机”)、“网上邻居”(NT6.0 之后被叫作“网络”)、“控制面板”、“打印机和传真”等概念,没错,他们都是文件夹。

需要了解更多针对Windows Shell以及文件夹的编程手段,阅读《Windows外壳名字空间的浏览 》 。

2.特殊文件夹

正如前面所说的,“桌面”、“我的电脑”或者说“计算机”等都是文件夹。像这样的文件夹我们可以想到很多,它们是Windows系统的特殊文件夹(SpecialFolder)。把它们写成Windows API的特殊文件夹标识符列表“CSIDL(constant special item ID list) ”,有以下多个:

public enum CSIDL { ADMINTOOLS = 0x30, ALTSTARTUP = 0x1d, APPDATA = 0x1a, BITBUCKET = 10, CDBURN_AREA = 0x3b, COMMON_ADMINTOOLS = 0x2f, COMMON_ALTSTARTUP = 30, COMMON_APPDATA = 0x23, COMMON_DESKTOPDIRECTORY = 0x19, COMMON_DOCUMENTS = 0x2e, COMMON_FAVORITES = 0x1f, COMMON_MUSIC = 0x35, COMMON_PICTURES = 0x36, COMMON_PROGRAMS = 0x17, COMMON_STARTMENU = 0x16, COMMON_STARTUP = 0x18, COMMON_TEMPLATES = 0x2d, COMMON_VIDEO = 0x37, CONTROLS = 3, COOKIES = 0x21, DESKTOP = 0, DESKTOPDIRECTORY = 0x10, DRIVES = 0x11, FAVORITES = 6, FLAG_CREATE = 0x8000, FONTS = 20, HISTORY = 0x22, INTERNET = 1, INTERNET_CACHE = 0x20, LOCAL_APPDATA = 0x1c, MYDOCUMENTS = 12, MYMUSIC = 13, MYPICTURES = 0x27, MYVIDEO = 14, NETHOOD = 0x13, NETWORK = 0x12, PERSONAL = 5, PRINTERS = 4, PRINTHOOD = 0x1b, PROFILE = 40, PROFILES = 0x3e, PROGRAM_FILES = 0x26, PROGRAM_FILES_COMMON = 0x2b, PROGRAMS = 2, RECENT = 8, SENDTO = 9, STARTMENU = 11, STARTUP = 7, SYSTEM = 0x25, TEMPLATES = 0x15, WINDOWS = 0x24 }

在使用Windows API函数编写Shell程序时,通过这样的枚举或者常量,可以得到这些文件夹的详细资料。当然,我不是来讲解怎样写代码的,下面是一些有趣的内容。

3.特殊文件夹标识符

当你在阅读《妙用Windows神秘的类标识符,{20D04FE0-3AEA-1069-A2D8-08002B30309D}》 这篇文章之前,我愿意列举一个表现特殊文件夹与其对应的标识符表格。

文件夹

类标识符 CLSID

我的电脑(计算机)

{20D04FE0-3AEA-1069-A2D8-08002B30309D}

控制面板

{21EC2020-3AEA-1069-A2DD-08002B30309D}

打印机和传真

{2227A280-3AEA-1069-A2DE-08002B30309D}

字体

{D20EA4E1-3957-11d2-A40B-0C5020524152}

扫描仪和摄像头

{E211B736-43FD-11D1-9EFB-0000F8757FCD}

网络连接

{7007ACC7-3202-11D1-AAD2-00805FC1270E}

管理工具

{D20EA4E1-3957-11d2-A40B-0C5020524153}

计划任务

{D6277990-4C6A-11CF-8D87-00AA0060F5BF}

Web 文件夹

{BDEADF00-C265-11D0-BCED-00A0C90AB50F}

我的文档

{450D8FBA-AD25-11D0-98A8-0800361B1103}

回收站

{645FF040-5081-101B-9F08-00AA002F954E}

网络(工作组)

{208D2C60-3AEA-1069-A2D7-08002B30309D}

Internet 浏览 器

{871C5380-42A0-1069-A2EA-08002B30309D}

查找计算机结果

{1F4DE370-D627-11D1-BA4F-00A0C91EEDBA}

查找文件结果

{E17D4FC0-5564-11D1-83F2-00A0C90DC849}

Win7

{031E4825-7B94-4dc3-B131-E946B44C8DD5}

公用

{4336a54d-038b-4685-ab02-99bb52d3fb8b}

文档

{450D8FBA-AD25-11D0-98A8-0800361B1103}

控制面板主页

{26EE0668-A00A-44D7-9371-BEB064C98683}

控制面板起始页

{5399E694-6CE5-4D6C-8FCE-1D8870FDCBA0}

用户

{59031a47-3f72-44a7-89c5-5595fe6b30ee}

回收站

{645FF040-5081-101B-9F08-00AA002F954E}

搜索

{9343812e-1c37-4a49-a12e-4b2d810d956b}

Windows Media

{B416D21B-3B22-B6D4-BBD3-BBD452DB3D5B}

其他用户( 家庭组)

{B4FB3F98-C1EA-428d-A78A-D1F5659CBA93}

游戏

{ED228FDF-9EA8-4870-83b1-96b02CFE0D52}

计算机和设备

{F02C1A0D-BE21-4350-88B0-7367FC96EF3C}

这是其中一部分,《系统程序文件标识符(如:我的电脑、回收站...)》 。如果你正在使用Windows XP操作系统,可以使用类似“Resource Hacker ”这类工具查看"%windir%/System32/shell32.dll"的“REGINST”资源得到那些标识符,如下图。

另一种获得标识符的方法是查看注册表。一部分常用的标识符在这个位置可以找到:

[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/Desktop/NameSpace]

4.特殊文件夹的应用

或许你已经迫不及待地阅读过《妙用Windows神秘的类标识符,{20D04FE0-3AEA-1069-A2D8-08002B30309D}》 ,并且进行了其中试验。简单描述一下:如果一个文件夹以前面列出的特殊文件夹标识符作为扩展名,这个普通文件夹就会拥有特殊文件夹的功能。比如,在桌面新建一个文件夹,修改共名称为“电脑.{20D04FE0-3AEA-1069-A2D8-08002B30309D}”,你就会得到的一个能打开到我的电脑或者计算机的特殊文件夹,而不能访问原先的文件夹内容,查看它的属性,会看到文件夹的全名。

我们需要将特殊标识去掉怎么办?可以利用命令提示符(Win+R,输入CMD),进入文件夹,或者对它重命名,如下图:

可以利用此方法在“桌面”上创建IE浏览器的图标(适合XP系统,参见:《桌面IE图标不见了的5种解决方法》 )。
(注:由于微软被告Windows操作系统捆绑IE浏览器,在更新操作系统后,桌面上的自定义图标中已经去除的IE浏览器选项,如下图所示)

5.在“运行”对话框和地址栏

如果我说这些特殊文件夹标识符可以应用到“运行”对话框(Win+R)和资源管理器的地址栏上会不会感到惊讶?没错,这是真的。只要在标识符前面加上“::”,比如,打开“回收站”,在运行对话框或者地址栏中输入“::{645FF040-5081-101B-9F08-00AA002F954E}”回车确认即可。而运行对话框支持的更多。

6. 资源管理器(explorer.exe)

explorer.exe作为Windows的默认Shell程序,负责操作系统的界面显示。资源管理器、我的电脑、桌面和任务栏都是这个程序提供的,它位于Windows目录(%windir%),你可以在运行对话框里输入“explorer /select,%windir%/explorer.exe”找到它。下面是结合explorer.exe和特殊文件夹标识打开文件夹的功能表格,我们可以在运行对话框,或者编程时写外面程序调用会用得上这些。

注:表格摘自:《How to display Windows Explorer objects in one command-line》 ,oyi319进行了翻译。

浏览什么? 命令行

X是浏览的目标

Y是可选的子目标

常规语法 :

Explorer [/n][/e][,/root],X,[[/Select],Y]

注释 :

  • 用 /e 将以“资源管理器”界面显示。即,左侧会显示文件夹窗格。
  • 用 /n 将以“我的电脑”界面显示。即,左侧不会出来文件夹窗格。
  • 若用 /root 参数,X会作为根路径。也就是说,到达X路径后,不允许向上操作。
  • 若不使用 /root ,我们浏览的对象X是子对象,我们可以浏览它的上级或者对象

例子 :

  1. 仅浏览C:盘:

    Explorer /E ,/Root,C:

    Explorer /Root ,%SystemDrive%

  2. 仅浏览Windows目录:

    Explorer /E,/Root,%windir%

  3. 仅浏览登录服务器 (可以使用UNC路径):

    Explorer /E,/Root,%LogonServer%

  4. 仅浏览当前用户配置路径:

    Explorer /E,/Root,%HOMEDRIVE%%HOMEPATH%

  5. 浏览 System32 文件夹,并选中 calc.exe 程序(calc.exe是计算器程序):

    Explorer /N,%windir%/system32,/select,%windir%/system32/calc.exe

我的电脑

Explorer /E, ::{20D04FE0-3AEA-1069-A2D8-08002B30309D}

解释 : 我的电脑的CLSID: {20D04FE0-3AEA-1069-A2D8-08002B30309D}

控制面板

Explorer /N, ::{20D04FE0-3AEA-1069-A2D8-08002B30309D}/::{21EC2020-3AEA-1069-A2DD-08002B30309D}

解释 : 控制面板是我的电脑的子对象,它的CLSID是: {21EC2020-3AEA-1069-A2DD-08002B30309D}。

打印机和传真

Explorer /N, ::{20D04FE0-3AEA-1069-A2D8-08002B30309D}/::{21EC2020-3AEA-1069-A2DD-08002B30309D}/::{2227A280-3AEA-1069-A2DE-08002B30309D}

字体

Explorer /N, ::{20D04FE0-3AEA-1069-A2D8-08002B30309D}/::{21EC2020-3AEA-1069-A2DD-08002B30309D}/::{D20EA4E1-3957-11d2-A40B-0C5020524152}

扫描仪和摄像头

Explorer /N, ::{20D04FE0-3AEA-1069-A2D8-08002B30309D}/::{21EC2020-3AEA-1069-A2DD-08002B30309D}/::{E211B736-43FD-11D1-9EFB-0000F8757FCD}

:Win7 无效

网络连接

Explorer /N, ::{20D04FE0-3AEA-1069-A2D8-08002B30309D}/::{21EC2020-3AEA-1069-A2DD-08002B30309D}/::{7007ACC7-3202-11D1-AAD2-00805FC1270E}

管理工具

Explorer /N, ::{20D04FE0-3AEA-1069-A2D8-08002B30309D}/::{21EC2020-3AEA-1069-A2DD-08002B30309D}/::{D20EA4E1-3957-11d2-A40B-0C5020524153}

计划任务

Explorer /N, ::{20D04FE0-3AEA-1069-A2D8-08002B30309D}/::{21EC2020-3AEA-1069-A2DD-08002B30309D}/::{D6277990-4C6A-11CF-8D87-00AA0060F5BF}

:Win7 无效

Web文件夹

Explorer /N, ::{20D04FE0-3AEA-1069-A2D8-08002B30309D}/::{BDEADF00-C265-11D0-BCED-00A0C90AB50F}

:Win7 无效

我的文档

Explorer /N, ::{450D8FBA-AD25-11D0-98A8-0800361B1103}

回收站

Explorer /N, ::{645FF040-5081-101B-9F08-00AA002F954E}

网络(网络收藏)

Explorer /N,:: {208D2C60-3AEA-1069-A2D7-08002B30309D}

默认浏览器(IE)

Explorer /N, ::{871C5380-42A0-1069-A2EA-08002B30309D}

查找文件

Explorer /N, ::{1F4DE370-D627-11D1-BA4F-00A0C91EEDBA}

:Win7 无效

查找计算机                 

Explorer /N, ::{E17D4FC0-5564-11D1-83F2-00A0C90DC849}

:Win7 无效

关于Windows的特殊文件夹相关推荐

  1. 好系统教你如何在Windows中更改文件夹的图标

    如何在Windows中更改文件夹的图标 浏览到要更改其图标的文件夹的位置,或创建一个新文件夹. 右键单击该文件夹,然后从出现的下拉菜单底部选择"属性". 在文件夹属性菜单中,选择自 ...

  2. Windows 无法删除文件夹的只读

    状况: 在XP 下,只读 前面的方框整个被填满成绿色底色(不是对勾), 在window 2003中是勾,但是是灰色的. 怎么改,都改不掉(但是里面的文件只读属性能改). 原因: 在Windows XP ...

  3. 服务器下最大能容量多少文件,windows下一个文件夹下面最多可以放多少文件(ntfs格式略过)...

    那么怎么来测试这样一个问题呢,很显然我们一个个的去建立文件是不现实的,没那么多时间,而且这个方法也太笨了.这里我们会用到批处理命令,新建一个bat文件,然后将"for /l %%a in ( ...

  4. 解决Windows 无法打开文件夹 找不到应用程序

    0x00  背景 原文:解决Windows 无法打开文件夹 找不到应用程序_reven-h的博客-CSDN博客 我有一个朋友的电脑打不开"此电脑",尝试打开其他文件夹也都报类似的错 ...

  5. Win10怎么使用Windows Defender扫描文件夹中的恶意软件?

    Windows 10 附带一个名为 Windows Defender 的免费内置防病毒程序,可提供实时保护并能够对您的计算机执行扫描. 它还允许您执行自定义扫描,让您指定要扫描恶意软件的特定文件夹或驱 ...

  6. Windows 11 移动文件夹错误 0x800700E1 无法成功完成操作

    Windows 11 移动文件夹时有部分文件弹出窗口:错误 0x800700E1 无法成功完成操作.以下为解决方法(对其他操作也有效): 设置->隐私和安全性->安全性->Windo ...

  7. 禁止文件夹 icloud_如何更改Windows iCloud照片文件夹位置

    禁止文件夹 icloud When you install the iCloud client on your Windows computer, it configures the shared f ...

  8. win10文件夹拒绝访问怎么办?windows拒绝访问文件夹的解决方法

    当我们每天使用win10系统计算机时,许多用户遇到了windows拒绝访问文件夹的问题.以下小编就带给大家拒绝访问文件夹怎么解决的具体方法,有兴趣的小伙伴赶紧来看看. ①右键点击打不开的文件夹,选择属 ...

  9. FREENAS WINDOWS SMB 公用文件夹的共享设置。。

    @[TOC]FREENAS WINDOWS SMB 免登录公用文件夹的共享设置.. FREENAS WINDOWS SMB 免登录公用文件夹的共享设置: 这是FreeNAS-11.2-U7 版本的 w ...

  10. Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的(转载)

    Windows 无法删除文件夹 -- 访问被拒绝 / 因为目录不是空的(转载) 作者:吕毅 原链接: https://walterlv.com ,仅作技术分享,无任何商业用途,若涉及侵权请联系删除. ...

最新文章

  1. 5.修改hadoop配置文件
  2. Chrome 控制台的console用法收集
  3. 通过极简模拟框架让你了解ASP.NET Core MVC框架的设计与实现[上篇]
  4. 前端学习(1374):express参数中get参数的获取
  5. android handle 阻塞,Android全面解析之Handler机制:常见问题汇总
  6. 电器缺水保护控制介绍
  7. 硬件设计-USB2.0电路设计
  8. NLP自然语言处理之句法分析
  9. CSS——CSS定位※ ( position )
  10. 挤出机是什么?跟模具有什么关系?
  11. Ubuntu操作系统如何搭建可视化界面?
  12. idea智能提示设置和修改提示快捷键
  13. Batchnorm 和Layernorm 区别
  14. proteus三输入与非门名字_Proteus所有元件名称
  15. 老铁是要塞里最出名的铁匠大师,小铁是老铁的儿子,老铁希望小铁能传承他的衣钵为要塞的骑士们锻造护甲。经近一段时间的学习,小铁逐渐掌握了打铁的技术,但是他很快发现,每一天手臂的力量总是不如前一天
  16. Revit二次开发——扩展存储
  17. 微信直播怎么弄?知识干货都在这里了
  18. WIPS产品到底能不能堵上最强Wi-Fi 漏洞?这里有一场精彩的红蓝对抗
  19. 首份财报:不太稳定的水滴
  20. java jar 打印_三种Java打印PDF文档的实例代码

热门文章

  1. Canvas入门教程
  2. nginx 服务器的响应头,隐藏HTTP请求响应头里的nginx版本号
  3. 清华大学计算机系李昂,李昂:爱思考的东北大男孩
  4. 游泳品牌推荐榜,四款排名靠前的游泳耳机推荐
  5. 吉林大学计算机初剑锋,吉林省全民健康信息平台通过55项软件功能复核
  6. 29. QML实现抽屉式选项窗口
  7. fiddler抓取夜神模拟中 微信小程序和app的https数据包
  8. Activiti工作流并行网关驳回在发起问题
  9. Samba Ubuntu 服务器配置
  10. bpmn2.0业务过程模型和符号_手拉手模型是什么?5步详解手拉手模型图