2010-02-17 8 views
17

Estoy programando en C# /. NET. Quiero poder devolver el directorio de Archivos de programa desde la máquina de destino sin importar la arquitectura de la máquina de destino. Para aclarar, quiero que devuelva C (or whatever drive the OS is on):/Program Files sin importar qué tan pequeña sea su versión de Windows.Cómo obtener la ruta de los Archivos de programa independientemente de la arquitectura de la máquina de destino

Podría codificar en el directorio, excepto si el usuario ejecutara Windows que no está instalado en la unidad C: no funcionaría.

He encontrado

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

pero creo que devuelve la carpeta Program Files (x86) en una máquina Windows de 64 bits.

+0

Creo que uno de esos "C:/Archivos de programa" debe estar equivocado. –

+1

Consulte http://stackoverflow.com/questions/194157/c-how-to-get-program-files-x86-on-vista-x64 – adrianbanks

Respuesta

29

System.Environment.GetFolderPath(System.Environment.SpecialFolder.ProgramFiles) vuelve "c:\Program Files" en una máquina de 64 bits, a menos que el código está construido para apuntar x 86, en cuyo caso se vuelve "C:\Program Files (x86)", así que supongo que funcione para usted.

+1

¿Qué ocurre si la plataforma de destino está configurada en Cualquier CPU? – PICyourBrain

+0

Si compilo el código usando Any CPU en mi máquina de 64 bits, devuelve '" C: \ Program Files "' (verificado ahora). –

+1

Lo hice también y devuelve Archivos de programa (x86) en el mío ... – PICyourBrain

Cuestiones relacionadas