tengo rempl qué que programa pasa hay files entre diferencia descargar carpeta borro archivos aparece c# windows file 64bit

rempl - C#- Cómo obtener archivos de programa(x86) en Windows 64 bit



que pasa si borro archivos de programa(x86) (6)

Estoy usando:

FileInfo( System.Environment.GetFolderPath( System.Environment.SpecialFolder.ProgramFiles) + @"/MyInstalledApp"

Para determinar si un programa se detecta en un equipo de usuarios (no es ideal, pero el programa que estoy buscando es un viejo error correcto de una aplicación de MS-DOS, y no se me ocurrió otro método).

En Windows XP y las versiones de 32 bits de Windows Vista, esto funciona bien. Sin embargo, en x64 Windows Vista, el código devuelve la carpeta Archivos de programa x64, mientras que la aplicación se instala en Archivos de programa x86. ¿Hay alguna manera de devolver programáticamente la ruta a Archivos de programa x86 sin cableado "C: / Archivos de programa (x86)"?


Estoy escribiendo una aplicación que puede ejecutarse tanto en la plataforma x86 como en la x64 para Windows 7 y consultar la siguiente variable simplemente tira la ruta correcta de la carpeta de archivos de programa en cualquier plataforma.

Environment.GetEnvironmentVariable("PROGRAMFILES")


La siguiente función devolverá el directorio de Program Files x86 en todas estas tres configuraciones de Windows:

  • Windows de 32 bits
  • Programa de 32 bits ejecutándose en Windows de 64 bits
  • Programa de 64 bits ejecutándose en ventanas de 64 bits

static string ProgramFilesx86() { if( 8 == IntPtr.Size || (!String.IsNullOrEmpty(Environment.GetEnvironmentVariable("PROCESSOR_ARCHITEW6432")))) { return Environment.GetEnvironmentVariable("ProgramFiles(x86)"); } return Environment.GetEnvironmentVariable("ProgramFiles"); }


Si está utilizando .NET 4, hay una enumeración especial de la carpeta ProgramFilesX86 :

Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86)


Sin embargo, tenga en cuenta que la variable de entorno ProgramFiles(x86) solo está disponible si su aplicación se ejecuta en 64 bits.

Si su aplicación se ejecuta en 32 bits, puede usar la variable de entorno ProgramFiles cuyo valor en realidad será "Archivos de programa (x86)".


Una forma sería buscar la variable de entorno "ProgramFiles (x86)":

String x86folder = Environment.GetEnvironmentVariable("ProgramFiles(x86)");


Environment.GetEnvironmentVariable("PROGRAMFILES(X86)") ?? Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles)