Windows 特殊檔案夾

來源:互聯網
上載者:User

標籤:

轉載: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

Windows 特殊檔案夾

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.