草稿:Program Files
Program Files是Microsoft Windows作業系統中標準文件夾的目錄名,通常安裝不屬於作業系統的應用程式。通常, 「Program Files」目錄下安裝的每個應用程式都會有一個用於存儲其特定應用程式資源的子目錄。共享資源(例如一個公司多個應用程式使用的資源)通常存儲在“Common Files”目錄中。
位置
[編輯]在標準Windows安裝中, 「Program Files」目錄位於%SystemDrive%\Program Files(
或其本地化等效文件),而「Common Files」 (或其本地化等效文件)將是「Program Files」下的子目錄。在 Windows Vista 及更高版本中, 「Program Files」和「Common Files」目錄的路徑未在磁盤上本地化(翻譯)。相反,本地化名稱是非本地化位置的NTFS 連接點。此外, Windows shell會根據系統的用戶界面語言來顯示Program Files文件夾名稱的本地化。
「Program Files」和「Common Files」都可以移動。在系統啟動時,「Program Files」和「Common Files」的實際路徑從Windows註冊表加載,它們存儲在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
下的ProgramFilesDir
和CommonFilesDir
值中。然後,系統的其餘部分就可以通過易失性環境變量%ProgramFiles%
和%CommonProgramFiles%
訪問它們。應用程式還可以通過使用dirids
查詢Setup API、
或通過Windows管理規範、或通過使用CSIDL或ShellSpecialFolderConstants
查詢shell來獲取這些路徑的位置。這些都是與本地化無關的方法。
Windows的x86-64和IA-64版本有兩個用於應用程式文件的文件夾:Program Files文件夾作為64位程序的默認安裝目標,而Program Files (x86)文件夾是需要WoW64仿真層的32位程序的默認安裝目標。雖然64位Windows版本也具有%ProgramFiles(x86)%
環境變量,但32位和64位環境中的dirids和CSIDL沒有區別;API僅返回不同的結果,具體取決於調用進程是否被模擬。 [1]
為了向後兼容舊文件分配表文件名的8.3限制,系統將名稱「Program Files 」、「Program Files (x86)」和「Common Program Files」縮短為progra~N
和common~N
,其中N是一個數字,在全新安裝中該序列號為 1(當同時存在 「Program Files」和「Program Files (x86)」時,該序列號為 1 和 2)。
重定向
[編輯]如果 Windows 安裝在NTFS卷上,默認情況下,「Program Files」文件夾只能由「管理員」用戶組的成員修改。對於為Windows 9x創建的程序來說,這可能是一個問題。這些作業系統沒有文件系統安全性,因此程序也可以將其數據存儲在「程序文件」中。將數據存儲在「Program Files」中的程序通常無法在具有普通用戶權限的Windows NT系統上正確運行,除非降低受影響子目錄的安全性。
Windows Vista通過引入文件和註冊表虛擬化解決了這個問題。當為某個進程啟用此 UAC 虛擬化時,Windows 會將對「Program Files」文件夾的更改保存到%LocalAppData%\VirtualStore\Program Files (x86)
中。
歷史
[編輯]「Program Files」出現在Windows 95中。 「Common Files」出現在 Windows 98中。
某個未知版本的Windows NT使用「Common」而不是「Common Files」。 [2] Windows 2000似乎沒有表現出這種行為。 CSIDL文檔提到「CSIDL_PROGRAM_FILES_COMMON」需要Shell32版本 5.0(Windows 2000和ME),但表示它僅在 Windows XP(6.0)上有效。 [3]
本地化
[編輯]Windows語言 | 存儲程序文件的文件夾名稱 |
存儲共享程序文件的文件夾名稱 |
---|---|---|
英語 | Program Files | Common Files |
阿拉伯語 | Program Files (ملفات البرامج (x86) for WoW64) | Common Files |
中文(簡體, 繁體, 台灣) | Program Files | Common Files |
捷克語 | Program Files | Common Files |
丹麥語 | Programmer | Fælles filer |
荷蘭語 | Program Files | Common Files |
芬蘭語 | Program Files | Common Files |
法語 | Programmes * | Fichiers communs |
德語 | Programme | Gemeinsame Dateien |
希伯來語 | Program Files | Common Files |
Hellenic (Greek) | Αρχεία Εφαρμογών | Common Files |
Hungarian | Programfájlok | Common Files |
意大利語 | Programmi | File comuni |
日語 | Program Files | Common Files |
韓語 | Program Files | Common Files |
Norwegian | Programfiler | Fellesfiler |
Polish | Program Files (Pliki programów (x86) for WoW64) | Common Files |
葡萄牙語 | Programas | Ficheiros comuns |
葡萄牙語 (巴西) | Arquivos de Programas | Arquivos comuns |
Romanian | Program Files | Common Files |
俄語 | Program Files | Common Files |
西班牙語 | Archivos de programa | Archivos comunes |
Swedish | Program | Delade filer |
Turkish | Program Files (Program Dosyaları (x86) for WoW64) | Common Files |
*在Windows Vista 及更高版本中。(在舊版本的 Microsoft Windows 中,文件夾名稱與英文名稱相同。) |
參見
[編輯]參考資料
[編輯]- ^ winapi - SHGetFolderPath() 32 bit vs 64 bit. Stack Overflow (英語).
- ^ Special Folders and Custom Folders. learn.microsoft.com. November 2012 (美國英語).
- ^ CSIDL (Shlobj.h) - Win32 apps. learn.microsoft.com. 22 March 2021 (美國英語).
CSIDL_PROGRAM_FILES_COMMON FOLDERID_ProgramFilesCommon Version 5.0. A folder for components that are shared across applications. A typical path is C:\Program Files\Common. Valid only for Windows XP.
延伸閱讀
[編輯]- Karp, David A.; O'Reilly, Tim; Mott, Troy. Windows XP in a nutshell 2nd. O'Reilly Media. 2005: 512. ISBN 978-0-5960-0900-7.
- Shilmover, Barry; Sjouwerman, Stu. Windows 2000 power toolkit 1st. Que Publishing. 2001. ISBN 978-0-7357-1061-0.