2010-02-17 66 views
17

我正在使用C#/ .NET進行編程。無論目標機器的體系結構如何,我都希望能夠從目標機器返回Program Files目錄。爲了澄清,我希望它返回C (or whatever drive the OS is on):/Program Files,無論他們的Windows版本是多少。無論目標機器的體系結構如何獲得Program Files的路徑

我只能在目錄中進行硬編碼,除非用戶運行的Windows未安裝在C:驅動器上,否則不起作用。

我發現

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

,但我認爲它返回一個64位的Windows機器上Program Files (x86)文件夾。

+0

我認爲其中一個「C:/ Program Files」一定是錯的。 – 2010-02-17 22:04:32

+1

請參閱http://stackoverflow.com/questions/194157/c-how-to-get-program-files-x86-on-vista-x64 – adrianbanks 2010-02-17 22:08:06

回答

29

System.Environment.GetFolderPath(System.Environment.SpecialFolder.ProgramFiles)在64位機器上返回"c:\Program Files",除非代碼構建爲目標x86,在這種情況下它將返回"C:\Program Files (x86)",所以我想這對你很有用。

+1

如果目標平臺設置爲Any CPU,該怎麼辦? – PICyourBrain 2010-02-17 22:07:42

+0

如果我使用我的64位機器上的任意CPU編譯代碼,它將返回'「C:\ Program Files文件」'(剛剛進行了驗證)。 – 2010-02-17 22:08:47

+1

我也是這樣做的,它會返回我的程序文件(x86)... – PICyourBrain 2010-02-17 22:23:01

相關問題