2015-11-23 52 views
18

我試圖在64位操作系統中獲取程序文件目錄。以下代碼返回相同的答案Program Files (x86)如何獲取Program Files目錄?

Console.WriteLine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86).ToString()); 
Console.WriteLine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles).ToString()); 

任何幫助?

+2

運行的測試程序編譯爲32位或64位? – ChrisF

+3

可能與http://stackoverflow.com/questions/3397818/environment-specialfolder-programfiles-value-for-a-32-bit-application-on-windows – Codor

+0

我編譯模式調試任何CPU,我試圖在x86中編譯,但它返回的結果相同 –

回答

4

這是你想要什麼:

Environment.GetEnvironmentVariable("ProgramW6432") 

將路徑返回到64位程序目錄。

有關環境變量和WOW64的詳細信息,請閱讀這裏: https://msdn.microsoft.com/en-us/library/windows/desktop/aa384274(v=vs.85).aspx

+3

我認爲它值得一個解釋... –

+4

這是一個「絕招」。最好使用'Environment.SpecialFolder'。 – i486

+0

這是一個「詭計」?它調用一個環境變量,並返回OP後面的值。使用特殊文件夾似乎不適用於他。 – JaggenSWE

25

您必須在課程的64位模式下運行程序。那麼這將打印

C:\Program Files (x86) 
C:\Program Files 

轉到:項目>您的項目屬性...>生成>禁用身高32位

1

對於這個

Console.WriteLine(Environment.GetEnvironmentVariable("ProgramFiles(x86)")); 

請檢查該鏈接C# - How to get Program Files (x86) on Windows 64 bit

上面的鏈接顯示它將返回所有這三種Windows配置中的x86 Program Files directory

32位Windows
32位程序在64位Windows
64位程序運行在64位Windows

相關問題