Em uma instalação padrão do Windows, o diretório ‘Arquivos de Programas’ estará em %SystemDrive%\Program Files
(ou o equivalente localizado), e o ‘Arquivos de Programas Comuns’ (ou o equivalente localizado) será um subdiretório em ‘Arquivos de Programas’. No Windows Vista e posteriores, os caminhos para os diretórios ‘Arquivos de Programas’ e ‘Arquivos de Programas Comuns’ não estão localizados no disco. Em vez disso, os nomes localizados são pontos de junção NTFS para os locais não localizados. Adicionalmente, a shell do Windows localiza o nome da pasta Arquivos de Programas dependendo do idioma de exibição da interface do usuário do sistema.
Bambos ‘Arquivos de Programas’ e ‘Arquivos de Programas Comuns’ podem ser movidos. Na inicialização do sistema, os caminhos reais para ‘Arquivos de Programas’ e ‘Arquivos de Programas Comuns’ são carregados a partir do registro do Windows, onde são armazenados nos valores ProgramFilesDir
e CommonFilesDir
em HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
. Eles são então tornados acessíveis para o resto do sistema através das variáveis de ambiente volátil %ProgramFiles%
, e %CommonProgramFiles%
. As aplicações também podem obter as localizações destes caminhos consultando os Setup API
usando dirids
, ou através do Windows Management Instrumentation, ou consultando a shell usando CSIDLs, ou ShellSpecialFolderConstants
. Todos estes são métodos independentes de localização.
x86-64 e as versões IA-64 do Windows têm duas pastas para arquivos de aplicativos: A pasta Arquivos de Programas serve como alvo padrão de instalação para programas de 64 bits, enquanto a pasta Arquivos de Programas (x86) é o alvo padrão de instalação para programas de 32 bits que precisam da camada de emulação WoW64. Enquanto as versões 64-bit do Windows também têm uma variável de ambiente %ProgramFiles(x86)%
, os dirids e CSIDLs não são diferentes entre ambientes de 32-bit e 64-bit; as APIs simplesmente retornam resultados diferentes, dependendo se o processo de chamada é emulado ou não.
Para ser compatível com o 8.3 limitações dos antigos nomes de arquivos da tabela de alocação de arquivos, os nomes ‘Arquivos de Programas’, ‘Arquivos de Programas (x86)’ e ‘Arquivos de Programas Comuns’ são abreviados pelo sistema para progra~N
e common~N
, onde N é um dígito, um número sequencial que numa instalação limpa será 1 (ou 1 e 2 quando ambos ‘Arquivos de Programas’ e ‘Arquivos de Programas (x86)’ estiverem presentes).
Se o Windows estiver instalado num volume NTFS, por defeito, a pasta ‘Ficheiros de Programas’ só pode ser modificada por membros dos grupos de utilizadores ‘Administradores’. Isto pode ser um problema para os programas criados para o Windows 9x. Esses sistemas operacionais não tinham segurança no sistema de arquivos e, portanto, os programas também poderiam armazenar seus dados em ‘Arquivos de Programas’. Programas que armazenam seus dados em ‘Arquivos de Programas’ normalmente não serão executados corretamente em sistemas Windows NT com privilégios normais de usuário, a menos que a segurança seja reduzida para os subdiretórios afetados. O Windows Vista resolveu este problema introduzindo a Virtualização de Arquivos e Registros. Quando esta virtualização é activada para um processo, o Windows guarda as alterações na pasta ‘Ficheiros de Programas’ para %LocalAppData%\VirtualStore\Program Files (x86)
.
.