热门问题
时间线
聊天
视角
Program Files
来自维基百科,自由的百科全书
Remove ads
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)。
Remove ads
如果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]
本地化
Remove ads
參見
參考資料
延伸閱讀
外部連結
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads