Как получить путь к программным файлам независимо от архитектуры целевого компьютера - PullRequest
17 голосов
/ 18 февраля 2010

Я программирую на C # /. NET. Я хочу иметь возможность возвращать каталог Program Files с целевой машины независимо от ее архитектуры. Чтобы уточнить, я хочу, чтобы он возвращал C (or whatever drive the OS is on):/Program Files независимо от того, какая у них версия битов.

Я мог бы просто жестко закодировать в каталоге, за исключением того, что если пользователь работал под управлением Windows, которая не установлена ​​на диске C: он не работал бы.

Я нашел

FileInfo(System.Environment.GetFolderPath(System.Environment.SpecialFolder.ProgramFiles) 

но я думаю, что он возвращает папку Program Files (x86) на 64-битной машине Windows.

1 Ответ

30 голосов
/ 18 февраля 2010

System.Environment.GetFolderPath(System.Environment.SpecialFolder.ProgramFiles) возвращает "c:\Program Files" на 64-битной машине, если код не предназначен для x86, и в этом случае он возвращает "C:\Program Files (x86)", поэтому я думаю, что это сработает для вас.

...