HOME

TheInfoList



OR:

Program Files is the directory name of a standard folder in
Microsoft Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
operating systems An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also inc ...
in which
applications Application may refer to: Mathematics and computing * Application software, computer software designed to help the user to perform specific tasks ** Application layer, an abstraction layer that specifies protocols and interface methods used in a c ...
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 Program Files' directory.


Overview

In a standard Windows installation, the 'Program Files' directory will be at %SystemDrive%\Program Files (or the localized equivalent thereof), and the 'Common Program 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 Program Files' directories are not localized on disk. Instead, the localized names are
NTFS junction point 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 symbo ...
s to the non-localized locations. Additionally, the
Windows shell The Windows shell is the graphical user interface for the Microsoft Windows operating system. Its readily identifiable elements consist of the desktop, the taskbar, the Start menu, the task switcher and the AutoPlay feature. On some versions of W ...
localizes the name of the Program Files folder depending on the system's user interface display language. Both 'Program Files' and 'Common Program Files' can be moved. At system startup, the actual paths to 'Program Files' and 'Common Program Files' are loaded from the
Windows registry 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 use ...
, 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 variable An environment variable is a dynamic-named value that can affect the way running processes will behave on a computer. They are part of the environment in which a process runs. For example, a running process can query the value of the TEMP env ...
s %ProgramFiles%, and %CommonProgramFiles%. Applications can also obtain the locations of these paths by querying the Setup API using dirids, or through
Windows Management Instrumentation Windows Management Instrumentation (WMI) consists of a set of extensions to the Windows Driver Model that provides an operating system interface through which instrumented components provide information and notification. WMI is Microsoft's impl ...
, or by querying the shell using CSIDLs, or ShellSpecialFolderConstants. These are all localization-independent methods.
x86-64 x86-64 (also known as x64, x86_64, AMD64, and Intel 64) is a 64-bit version of the x86 instruction set, first released in 1999. It introduced two new modes of operation, 64-bit mode and compatibility mode, along with a new 4-level paging mod ...
and
IA-64 IA-64 (Intel Itanium architecture) is the instruction set architecture (ISA) of the Itanium family of 64-bit Intel microprocessors. The basic ISA specification originated at Hewlett-Packard (HP), and was subsequently implemented by Intel in coll ...
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 In computing on Microsoft platforms, WoW64 (Windows 32-bit on Windows 64-bit) 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—including ...
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. To be backwards compatible with the 8.3 limitations of the old
File Allocation Table File Allocation Table (FAT) is a file system developed for personal computers. Originally developed in 1977 for use on floppy disks, it was adapted for use on hard disks and other devices. It is often supported for compatibility reasons by ...
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). If Windows is installed on an
NTFS 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 fil ...
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 Windows 9x is a generic term referring to a series of Microsoft Windows computer operating systems produced from 1995 to 2000, which were based on the Windows 95 kernel and its underlying foundation of MS-DOS, both of which were updated in subs ...
. 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 Windows NT is a proprietary graphical operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems sc ...
systems with normal user privileges unless security is lowered for the affected subdirectories.
Windows Vista Windows Vista is a major release of the Windows NT operating system developed by Microsoft. It was the direct successor to Windows XP, which was released five years before, at the time being the longest time span between successive releases of ...
addressed this issue by introducing File and Registry Virtualization. When this virtualization is enabled for a process, Windows saves changes to the 'Program Files' folder to %LocalAppData%\VirtualStore\Program Files (x86).Inside Windows Vista User Account Control
by
Mark Russinovich Mark Eugene Russinovich (born December 22, 1966) is a Spanish-born American software engineer and author who serves as CTO of Microsoft Azure. He was a cofounder of software producers Winternals before it was acquired by Microsoft in 2006. Ea ...


Localization


See also

*
WinFS WinFS (short for Windows Future Storage) was the code name for a canceled data storage and management system project based on relational databases, developed by Microsoft and first demonstrated in 2003 as an advanced storage subsystem for the Micro ...
*
File system In computing, file system or filesystem (often abbreviated to fs) is a method and data structure that the operating system uses to control how data is stored and retrieved. Without a file system, data placed in a storage medium would be one larg ...
*
Directory (computing) In computing, a directory is a file system cataloging structure which contains references to other computer files, and possibly other directories. On many computers, directories are known as folders, or drawers, analogous to a workbench or the tr ...
*
64-bit computing In computer architecture, 64-bit integers, memory addresses, or other data units are those that are 64 bits wide. Also, 64-bit CPUs and ALUs are those that are based on processor registers, address buses, or data buses of that size. A compute ...


References


microsoft.com, Microsoft does not support changing the location of the Program Files folder by modifying the ProgramFilesDir registry valuemicrosoft.com, Why is the Program Files directory called Program Files instead of just Programs?
*Windows XP in a Nutshell, By David Aaron Karp, Tim O'Reilly, Troy Mott, page 512
superuser.com, How can I find the short path of a Windows directory/file?helpdeskgeek.com, Why Does Windows 7 64-bit Need Two Program Files Folders?quepublishing.com, The Windows XP Layout, By Stu Sjouwerman, Nov 7, 2003
{{CPU technologies File system directories Microsoft Windows