2010-02-17 41 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

相关问题