В 32-битной системе вы получите то же значение, что и для SpecialFolder.System
, так что нет, в этом нет необходимости. Вы можете использовать SpecialFolder.SystemX86
, чтобы однозначно получить системную папку, содержащую 32-разрядные двоичные файлы.
Источник: Environment.GetFolderPath
делегирует SHGetFolderPath
, с SpecialFolder.SystemX86
отображением CSIDL_SYSTEMX86
, что задокументировано здесь для сопоставления %windir%\system32
в 32-битных системах. Это значение было введено в Windows 2000, поэтому, если вы не планируете работать на очень старой и неподдерживаемой версии Windows (с такой же древней версией .NET), проверять не нужно.
Обратите внимание, что результаты зависят только от разрядности вашей ОС, а не от разрядности вашего процесса; 32-разрядные и 64-разрядные процессы будут возвращать одинаковые значения (но, конечно, перенаправление файловой системы означает, что 32-разрядные процессы обычно обращаются к SysWOW64
под капотом, когда они получают доступ к System32
).