Program Files

Last updated

Program Files is the directory name of a standard folder in Microsoft Windows operating systems in which applications that are not part of the operating system are conventionally installed. Typically, each application installed under the 'Program Files' directory will have a subdirectory for its application-specific resources. Shared resources, for example resources used by multiple applications from one company, are typically stored in the 'Common Files' directory.

Contents

Location

In a standard Windows installation, the 'Program Files' directory will be at %SystemDrive%\Program Files (or the localized equivalent thereof), and the 'Common Files' (or the localized equivalent thereof) will be a subdirectory under 'Program Files'. In Windows Vista and later, the paths to the 'Program Files' and 'Common Files' directories are not localized (translated) on disk. Instead, the localized names are NTFS junction points to the non-localized locations. Additionally, the Windows shell localizes the name of the Program Files folder depending on the system's user interface display language.

Both 'Program Files' and 'Common Files' can be moved. At system startup, the actual paths to 'Program Files' and 'Common Files' are loaded from the Windows registry, where they are stored in the ProgramFilesDir and CommonFilesDir values under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion. They are then made accessible to the rest of the system via the volatile environment variables %ProgramFiles%, and %CommonProgramFiles%. Applications can also obtain the locations of these paths by querying the Setup API using dirids, or through Windows Management Instrumentation, or by querying the shell using CSIDLs, or ShellSpecialFolderConstants. These are all localization-independent methods.

x86-64 and IA-64 versions of Windows have two folders for application files: The Program Files folder serves as the default installation target for 64-bit programs, while the Program Files (x86) folder is the default installation target for 32-bit programs that need WoW64 emulation layer. While 64-bit Windows versions also have a %ProgramFiles(x86)% environment variable, the dirids and CSIDLs are not different between 32-bit and 64-bit environments; the APIs merely return different results, depending on whether the calling process is emulated or not. [1]

To be backwards compatible with the 8.3 limitations of the old File Allocation Table filenames, the names 'Program Files', 'Program Files (x86)' and 'Common Program Files' are shortened by the system to progra~N and common~N, where N is a digit, a sequence number that on a clean install will be 1 (or 1 and 2 when both 'Program Files' and 'Program Files (x86)' are present).

Redirection

If Windows is installed on an NTFS volume, by default, the 'Program Files' folder can only be modified by members of the 'Administrators' user groups. This can be an issue for programs created for Windows 9x. Those operating systems had no file system security, and programs could therefore also store their data in 'Program Files'. Programs that store their data in 'Program Files' will usually not run correctly on Windows NT systems with normal user privileges unless security is lowered for the affected subdirectories.

Windows Vista addressed this issue by introducing File and Registry Virtualization. When this UAC virtualization is enabled for a process, Windows saves changes to the 'Program Files' folder to %LocalAppData%\VirtualStore\Program Files (x86). [2]

History

"Program Files" appeared in Windows 95. "Common Files" appeared in Windows 98. [3]

An unknown Windows NT version uses "Common" instead of "Common Files". [4] Windows 2000 does not seem to exhibit this behavior. [3] The CSIDL documentation mentions that "CSIDL_PROGRAM_FILES_COMMON" requires Shell32 version 5.0 (Windows 2000 and ME), but says it is only valid on Windows XP (6.0). [5]

Localization

Language of WindowsName of the folder that
stores program files
Name of the folder that
stores shared program files
EnglishProgram FilesCommon Files
ArabicProgram Files (ملفات البرامج (x86) for WoW64)Common Files
Chinese (Simplified, Traditional, Taiwan)Program FilesCommon Files
CzechProgram FilesCommon Files
DanishProgrammerFælles filer
DutchProgram FilesCommon Files
FinnishProgram FilesCommon Files
FrenchProgrammes *Fichiers communs
GermanProgrammeGemeinsame Dateien
HebrewProgram FilesCommon Files
Hellenic (Greek)Αρχεία ΕφαρμογώνCommon Files
HungarianProgramfájlokCommon Files
ItalianProgrammiFile comuni
JapaneseProgram FilesCommon Files
KoreanProgram FilesCommon Files
NorwegianProgramfilerFellesfiler
PolishProgram Files (Pliki programów (x86) for WoW64)Common Files
PortugueseProgramasFicheiros comuns
Portuguese (Brasil)Arquivos de ProgramasArquivos comuns
RomanianProgram FilesCommon Files
RussianProgram FilesCommon Files
SpanishArchivos de programaArchivos comunes
SwedishProgramDelade filer
TurkishProgram Files (Program Dosyaları (x86) for WoW64)Common Files
* In Windows Vista and later versions. (The folder name was the same as in English in the older versions of Microsoft Windows.)

See also

Related Research Articles

<span class="mw-page-title-main">Windows 2000</span> Fifth major release of Windows NT, released in 2000

Windows 2000 is a major release of the Windows NT operating system developed by Microsoft and designed for businesses as the direct successor to Windows NT 4.0. It was released to manufacturing on December 15, 1999, officially released to retail on February 17, 2000, and released on September 26, 2000, for Windows 2000 Datacenter Server. It was Microsoft's business operating system until the introduction of Windows XP Professional in 2001.

New Technology File System (NTFS) is a proprietary journaling file system developed by Microsoft. Starting with Windows NT 3.1, it is the default file system of the Windows NT family. It superseded File Allocation Table (FAT) as the preferred filesystem on Windows and is supported in Linux and BSD as well. NTFS reading and writing support is provided using a free and open-source kernel implementation known as NTFS3 in Linux and the NTFS-3G driver in BSD. By using the convert command, Windows can convert FAT32/16/12 into NTFS without the need to rewrite all files. NTFS uses several files typically hidden from the user to store metadata about other files stored on the drive which can help improve speed and performance when reading data. Unlike FAT and High Performance File System (HPFS), NTFS supports access control lists (ACLs), filesystem encryption, transparent compression, sparse files and file system journaling. NTFS also supports shadow copy to allow backups of a system while it is running, but the functionality of the shadow copies varies between different versions of Windows.

In computing, a symbolic link is a file whose purpose is to point to a file or directory by specifying a path thereto.

<span class="mw-page-title-main">File Explorer</span> File manager application that is included with releases of the Microsoft Windows operating system

File Explorer, previously known as Windows Explorer, is a file manager application and default desktop environment that is included with releases of the Microsoft Windows operating system from Windows 95 onwards. It provides a graphical user interface for accessing the file systems, as well as user interface elements such as the taskbar and desktop.

<span class="mw-page-title-main">Windows XP Professional x64 Edition</span> Edition of Windows XP for x86-64 computers, released in 2005

Microsoft Windows XP Professional x64 Edition is an edition of Windows XP for x86-64 personal computers. It was released on April 25, 2005, around the same time as with the x86-64 versions of Windows Server 2003. It is designed to use the expanded 64-bit memory address space provided by the x86-64 architecture.

The Encrypting File System (EFS) on Microsoft Windows is a feature introduced in version 3.0 of NTFS that provides filesystem-level encryption. The technology enables files to be transparently encrypted to protect confidential data from attackers with physical access to the computer.

<span class="mw-page-title-main">Windows Registry</span> Database for Microsoft Windows

The Windows Registry is a hierarchical database that stores low-level settings for the Microsoft Windows operating system and for applications that opt to use the registry. The kernel, device drivers, services, Security Accounts Manager, and user interfaces can all use the registry. The registry also allows access to counters for profiling system performance.

In a computer file system, a fork is a set of data associated with a file-system object. File systems without forks only allow a single set of data for the contents, while file systems with forks allow multiple such contents. Every non-empty file must have at least one fork, often of default type, and depending on the file system, a file may have one or more other associated forks, which in turn may contain primary data integral to the file, or just metadata.

<span class="mw-page-title-main">System Restore</span> System recovery feature in Microsoft Windows

System Restore is a feature in Microsoft Windows that allows the user to revert their computer's state to that of a previous point in time, which can be used to recover from system malfunctions or other problems. First included in Windows Me, it has been included in all following desktop versions of Windows released since, excluding Windows Server. In Windows 10, System Restore is turned off by default and must be enabled by users in order to function. This does not affect personal files such as documents, music, pictures, and videos.

<span class="mw-page-title-main">Windows Server 2008</span> Fourth version of Windows Server, released in 2008

Windows Server 2008, codenamed "Longhorn Server", is the fourth release of the Windows Server operating system produced by Microsoft as part of the Windows NT family of the operating systems. It was released to manufacturing on February 4, 2008, and generally to retail on February 27, 2008. Derived from Windows Vista, Windows Server 2008 is the successor of Windows Server 2003 and the predecessor to Windows Server 2008 R2.

System File Checker (SFC) is a utility in Microsoft Windows that allows users to scan for and restore corrupted Windows system files.

The booting process of Windows NT is the process run to start Windows NT. The process has been changed between releases, with the biggest changes being made with Windows Vista. In versions before Vista, the booting process begins when the BIOS loads the Windows NT bootloader, NTLDR. Starting with Vista, the booting process begins with either the BIOS or UEFI loading the Windows Boot Manager, which replaces NTLDR as the bootloader. Next, the bootloader starts the kernel, which starts the session manager, which begins the login process. Once the user is logged in, File Explorer, the graphical user interface used by Windows NT, is started.

The Prefetcher is a component of Microsoft Windows which was introduced in Windows XP. It is a component of the Memory Manager that can speed up the Windows boot process and shorten the amount of time it takes to start up programs. It accomplishes this by caching files that are needed by an application to RAM as the application is launched, thus consolidating disk reads and reducing disk seeks. This feature was covered by US patent 6,633,968.

On Microsoft Windows, a special folder is a folder that is presented to the user through an interface as an abstract concept instead of an absolute folder path. Special folders make it possible for any application to ask the operating system where an appropriate location for certain kinds of files can be found; independently of which version or user language of Windows is being used.

The NTFS file system defines various ways to redirect files and folders, e.g., to make a file point to another file or its contents without making a copy of it. The object being pointed to is called the target. Such file is called a hard or symbolic link depending on a way it's stored on the filesystem.

<span class="mw-page-title-main">Trash (computing)</span> Temporary storage for deleted files

In computing, the trash, also known by other names such as dustbin, wastebasket, and others, is a graphical user interface desktop metaphor for temporary storage for files set aside by the user for deletion, but not yet permanently erased. The concept and name is part of Mac operating systems, a similar implementation is called the Recycle Bin in Microsoft Windows, and other operating systems use other names.

Microsoft Windows profile refers to the user profile that is used by the Microsoft Windows operating system to represent the characteristics of the user.

Side-by-side assembly technology is a standard for executable files in Windows 98 Second Edition, Windows 2000, and later versions of Windows that attempts to alleviate problems that arise from the use of dynamic-link libraries (DLLs) in Microsoft Windows. Such problems include version conflicts, missing DLLs, duplicate DLLs, and incorrect or missing registration. In side-by-side, Windows stores multiple versions of a DLL in the %systemroot%\WinSxS directory, and loads them on demand. This reduces dependency problems for applications that include a side-by-side manifest.

In computing on Microsoft platforms, WoW64 is a subsystem of the Windows operating system capable of running 32-bit applications on 64-bit Windows. It is included in all 64-bit versions of Windows, except in Windows Server Server Core where it is an optional component, and Windows Nano Server where it is not included. WoW64 aims to take care of many of the differences between 32-bit Windows and 64-bit Windows, particularly involving structural changes to Windows itself.

References

  1. "winapi - SHGetFolderPath() 32 bit vs 64 bit". Stack Overflow.
  2. Inside Windows Vista User Account Control by Mark Russinovich
  3. 1 2 Emulated system images from https://copy.sh/v86/
  4. "Special Folders and Custom Folders". learn.microsoft.com. November 2012.
  5. "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.

Further reading