Windows 特殊文件夹

转载:http://www.xue163.com/124/6/1243914.html

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}》 这篇文章之前,我愿意列举一个表现特殊文件夹与其对应的标识符表格。

<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } -->

文件夹
类标识符 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是子对象,我们可以浏览它的上级或者对象
例子 :

仅浏览C:盘:
Explorer /E ,/Root,C:

Explorer /Root ,%SystemDrive%

仅浏览Windows目录:
Explorer /E,/Root,%windir%

仅浏览登录服务器 (可以使用UNC路径):
Explorer /E,/Root,%LogonServer%

仅浏览当前用户配置路径:
Explorer /E,/Root,%HOMEDRIVE%%HOMEPATH%

浏览 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 无效
 

本篇文章来源于中国学网[http://www.xue163.com] 原文链接:http://www.xue163.com/124/6/1243914.html

时间: 2024-10-10 16:48:09

Windows 特殊文件夹的相关文章

Windows.old文件夹恢复系统解决方案

开始在百度上搜,百度经验,还有很多复制百度经验的答案,关键是我没有DVD, 那种方法基本不管用,何况现在笔记本都不太喜欢装光驱了,后面自己摸索,尝试各种办法,最终发现原理,其实很简单的. 第一步: 必须要有windows.old文件夹,其次,windows.old文件夹下面有WindowsOld.wim文件,据我判断,windows.old文件夹下面是一些安装程序文件和数据,而WindowsOld.wim文件下面则是windows系统的一些文件集合(虽然有Windows文件夹,但并不完整),现如

Windows利用文件夹映射来同步文件

在windows服务器上有时有这样的需求: 你的文件在f:\test中,但由于其它原因用户访问的是e:\test,如果又希望e:\test 中的文件与f:\test的保持同步,除了用同步软件来做外,可以用windows 的文件夹映射来做 mklink /J "e:\test" "f:\test" "e:\test" 这个文件夹事先不能存在,是要创建的目标文件夹(映射的) 现在不管是在f:\test还是在e:\test创建或修改文件,在另外一个文件

Windows之文件夹中打开PowerShell

Windows之文件夹中打开PowerShell 为了解决Windows中在某个路径下使用PowerShell,而不是使用传统的cd命令切换过去,具体做法如下: 打开文件夹 在文件夹的内容区按下Shift+右击 点击在此处打开PowerShell即可. 结果: 原文地址:https://www.cnblogs.com/ZN-225/p/10269504.html

windows 系统进行升级之后,如何删除 Windows.old 文件夹。

首先用鼠标右键点击 C 盘,在弹出的下拉列表里找到“属性”并点击它. 步骤阅读 2 在打开的 C 盘属性里的常规找到“磁盘清理”,点击它打开. 步骤阅读 3 这时,程序就开始对系统里将要进行清理的文件进行扫描. 步骤阅读 4 在打开的“磁盘清理”对话框里找到“清理系统文件”并点击它来继续. 步骤阅读 5 这时,程序再次进行扫描的操作. 步骤阅读 6 在这里要在“要删除的文件(F)”列表里找到“以前的Windows安装”,并把它前面的选择框给打上勾,以示已经对其进行了选择,这时在下面的描述里我们就

Windows各个文件夹介绍

windows文件介绍 总结 ├WINDOWS │ ├-system32(存放Windows的系统文件和硬件驱动程序) │ │ ├-config(用户配置信息和密码信息) │ │ │ └-systemprofile(系统配置信息,用于恢复系统) │ │ ├-drivers(用来存放硬件驱动文件) │ │ ├-spool(用来存放系统打印文件.包括打印的色彩.打印预存等) │ │ ├-wbem(存放WMI测试程序,用于查看和更改公共信息模型类.实例和方法等) │ │ ├-IME(用来存放系统输入法

移动Windows用户文件夹的方法研究

这种方法可能导致升级Windows失败.请谨慎使用. Windows 8.1 使用有效.其他系统请酌情修改. —————————————————————————— 复制文件内容(带权限等信息):有的说法是直接PE下复制.有的用了xcopy.然而有时,这些方法对符号链接处理得不好.我参考另外的说法,使用了robocopy. 高级启动模式——命令提示符: robocopy C:\Users D:\Users /E /COPYALL /XJ 参数说明: /E 表示拷贝文件时包含子目录(包括空目录)/C

windows 打开文件夹

@echo off rem 建立链接 net use \\192.168.2.3\share /user:username password rem 打开共享文件夹 explorer \\192.168.2.3\share Pause net use \\192.168.2.3\share /delete Exit 附Explorer命令的用法: Explorer [/n][/e]<,/root],[path><,/select],[path filename> 参数说明 /n表示

windows下文件夹遍历

文件夹的操作,是我们在编程中经常遇到的问题,在linux上和windows上经常会有文件夹操作的需求,典型的例子如遍历文件夹中的所有文件,在这两个系统中文件夹操作所提供的API也有所不同. 最近我老婆向我提了一个需求,便于她管理文件夹:开发一个exe,将exe放入一个目录下,点击该exe,生成这个目录下所有文件的清单,文件夹用"[]"括起来,同时根据文件级别进行缩进. 这个需求实现起来不难,用到的知识就是文件夹的遍历,在windows上使用的是windows相关的API函数,主要有用到

Windows删除文件夹下的指定格式文件(递归删除)

问题描述: 今天遇到一个需求,需要对文件夹进行文件筛选.目录结构较为复杂(目录较多,层次较深),数据量较大(总共60GB左右). 鉴于上述情况,直接排除了人工处理方式(否则小伙伴们会打死我的). 解决方法: 网上看了一下,初步确定通过windows命令的方式处理 . 命令如下: del /s PATH\*.扩展名 例如: del /s D:\AAA\*.zip   表示删除D盘下AAA文件夹以及其子文件夹中所有的ZIP格式文件. 命令可以在cmd中直接执行或者卸载bat脚本中执行. 提示:在执行