c# .net

c# - Environment.GetFolderPath(... CommonApplicationData) sigue devolviendo "C: / Documents and Settings /" en Vista



.net (4)

Mi instalador copió un archivo log.txt que se había generado en una computadora XP. Estaba mirando ese archivo de registro pensando que se generó en Vista. Una vez que arreglé mi configuración de log4net para ser "Compatible con Vista". Environment.GetFolderPath estaba devolviendo los resultados esperados. Por lo tanto, estoy cerrando esta publicación.

La siguiente referencia de ruta de SpecialFolder podría ser útil:

Salida en Windows Server 2003:

SpecialFolder.ApplicationData: C:/Documents and Settings/blake/Application Data SpecialFolder.CommonApplicationData: C:/Documents and Settings/All Users/Application Data SpecialFolder.ProgramFiles: C:/Program Files SpecialFolder.CommonProgramFiles: C:/Program Files/Common Files SpecialFolder.DesktopDirectory: C:/Documents and Settings/blake/Desktop SpecialFolder.LocalApplicationData: C:/Documents and Settings/blake/Local Settings/Application Data SpecialFolder.MyDocuments: C:/Documents and Settings/blake/My Documents SpecialFolder.System: C:/WINDOWS/system32`

Output on Vista:

SpecialFolder.ApplicationData: C:/Users/blake/AppData/Roaming SpecialFolder.CommonApplicationData: C:/ProgramData SpecialFolder.ProgramFiles: C:/Program Files SpecialFolder.CommonProgramFiles: C:/Program Files/Common Files SpecialFolder.DesktopDirectory: C:/Users/blake/Desktop SpecialFolder.LocalApplicationData: C:/Users/blake/AppData/Local SpecialFolder.MyDocuments: C:/Users/blake/Documents SpecialFolder.System: C:/Windows/system32

Salida en Vista:

SpecialFolder.ApplicationData: /home/$USER/.config SpecialFolder.CommonApplicationData: /usr/share SpecialFolder.ProgramFiles: SpecialFolder.DesktopDirectory: /home/$USER/Desktop SpecialFolder.LocalApplicationData: /home/$USER/.local/share SpecialFolder.MyDocuments: /home/$USER SpecialFolder.System: SpecialFolder.Personal: /home/$USER

Según tengo entendido, se supone que debes usar el método Environment.GetFolderPath para que tengas código independiente del sistema operativo ...

Windows XP usa C:/Documents and Settings/ . Windows Vista usa C:/ProgramData y C:/Users .

Estoy usando el siguiente código en una computadora con Windows Vista y está devolviendo un directorio C:/Documents and Settings/ lugar de C:/ProgramData como debería ... ¿Alguna idea?

string commonAppData = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData); try { File.CreateText( Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "//mycompany//uid"); log.Debug("Created file successfully"); } catch (Exception ex) { log.Error("Unable to create the uid file: ", ex); }


Salida en Ubuntu 9.10 -> Ubuntu 12.04 con mono 2.10.8.1:

SpecialFolder.ApplicationData: /home/$USER/.config SpecialFolder.CommonApplicationData: /usr/share SpecialFolder.ProgramFiles: SpecialFolder.DesktopDirectory: /home/$USER/Desktop SpecialFolder.LocalApplicationData: /home/$USER/.local/share SpecialFolder.MyDocuments: /home/$USER SpecialFolder.Desktop: /home/$USER/Desktop SpecialFolder.Personal: /home/$USER SpecialFolder.System: SpecialFolder.Programs: SpecialFolder.Favorites: SpecialFolder.Startup: SpecialFolder.Recent: SpecialFolder.SendTo: SpecialFolder.StartMenu: SpecialFolder.MyMusic: /home/$USER/Music SpecialFolder.MyVideos: /home/$USER/Videos SpecialFolder.MyComputer: SpecialFolder.NetworkShortcuts: SpecialFolder.Fonts: /home/$USER/.fonts SpecialFolder.Templates: /home/$USER/Templates SpecialFolder.CommonStartMenu: SpecialFolder.CommonPrograms: SpecialFolder.CommonStartup: SpecialFolder.CommonDesktopDirectory: SpecialFolder.PrinterShortcuts: SpecialFolder.InternetCache: SpecialFolder.Cookies: SpecialFolder.History: SpecialFolder.Windows: SpecialFolder.MyPictures: /home/$USER/Pictures SpecialFolder.UserProfile: /home/$USER SpecialFolder.SystemX86: SpecialFolder.ProgramFilesX86: SpecialFolder.CommonProgramFiles: SpecialFolder.CommonProgramFilesX86: SpecialFolder.CommonTemplates: /usr/share/templates SpecialFolder.CommonDocuments: SpecialFolder.CommonAdminTools: SpecialFolder.AdminTools: SpecialFolder.CommonMusic: SpecialFolder.CommonPictures: SpecialFolder.CommonVideos: SpecialFolder.Resources: SpecialFolder.LocalizedResources: SpecialFolder.CommonOemLinks: SpecialFolder.CDBurning:

Salida en Ubuntu 16.04 con mono 4.2.1

Environment.SpecialFolder.ApplicationData: /data/user/0/$APPNAME/files/.config Environment.SpecialFolder.CommonApplicationData: /usr/share Environment.SpecialFolder.ProgramFiles: Environment.SpecialFolder.DesktopDirectory: /data/user/0/$APPNAME/files/Desktop Environment.SpecialFolder.LocalApplicationData: /data/user/0/$APPNAME/files/.local/share Environment.SpecialFolder.MyDocuments: /data/user/0/$APPNAME/files Environment.SpecialFolder.Desktop: /data/user/0/$APPNAME/files/Desktop Environment.SpecialFolder.Personal: /data/user/0$APPNAME/files Environment.SpecialFolder.Startup: Environment.SpecialFolder.Recent: Environment.SpecialFolder.SendTo: Environment.SpecialFolder.StartMenu: Environment.SpecialFolder.MyMusic: /data/user/0/$APPNAME/files/Music Environment.SpecialFolder.MyVideos: /data/user/0/$APPNAME/files/Videos Environment.SpecialFolder.MyComputer: Environment.SpecialFolder.NetworkShortcuts: Environment.SpecialFolder.Fonts: /data/user/0/$APPNAME/files/.fonts Environment.SpecialFolder.Templates: /data/user/0/$APPNAME/files/Templates Environment.SpecialFolder.CommonStartMenu: Environment.SpecialFolder.CommonPrograms: Environment.SpecialFolder.CommonStartup: Environment.SpecialFolder.CommonDesktopDirectory: Environment.SpecialFolder.PrinterShortcuts: Environment.SpecialFolder.InternetCache: Environment.SpecialFolder.Cookies: Environment.SpecialFolder.History: Environment.SpecialFolder.Windows: Environment.SpecialFolder.MyPictures: /data/user/0/$APPNAME/files/Pictures Environment.SpecialFolder.UserProfile: /data/user/0/$APPNAME/files Environment.SpecialFolder.SystemX86: Environment.SpecialFolder.ProgramFilesX86: Environment.SpecialFolder.CommonProgramFiles: Environment.SpecialFolder.CommonProgramFilesX86: Environment.SpecialFolder.CommonTemplates: /usr/share/templates Environment.SpecialFolder.CommonDocuments: Environment.SpecialFolder.CommonAdminTools: Environment.SpecialFolder.AdminTools: Environment.SpecialFolder.CommonMusic: Environment.SpecialFolder.CommonPictures: Environment.SpecialFolder.CommonVideos: Environment.SpecialFolder.Resources: Environment.SpecialFolder.LocalizedResources: Environment.SpecialFolder.CommonOemLinks: Environment.SpecialFolder.CDBurning:

donde $ USER es el usuario actual

Salida en Android 6 usando Xamarin 7.2

ApplicationData: /Users/$USER/Library/Developer/CoreSimulator/Devices/$DEVICEGUID/data/Containers/Data/Application/$APPLICATIONGUID/Documents/.config CommonApplicationData: /usr/share ProgramFiles: /Applications DesktopDirectory: /Users/$USER/Library/Developer/CoreSimulator/Devices/$DEVICEGUID/data/Containers/Data/Application/$APPLICATIONGUID/Documents/Desktop LocalApplicationData: /Users/$USER/Library/Developer/CoreSimulator/Devices/$DEVICEGUID/data/Containers/Data/Application/$APPLICATIONGUID/Documents MyDocuments: /Users/$USER/Library/Developer/CoreSimulator/Devices/$DEVICEGUID/data/Containers/Data/Application/$APPLICATIONGUID/Documents Desktop: /Users/$USER/Library/Developer/CoreSimulator/Devices/$DEVICEGUID/data/Containers/Data/Application/$APPLICATIONGUID/Documents/Desktop MyDocuments: /Users/$USER/Library/Developer/CoreSimulator/Devices/$DEVICEGUID/data/Containers/Data/Application/$APPLICATIONGUID/Documents Startup: Recent: SendTo: StartMenu: MyMusic: /Users/$USER/Library/Developer/CoreSimulator/Devices/$DEVICEGUID/data/Containers/Data/Application/$APPLICATIONGUID/Documents/Music MyVideos: /Users/$USER/Library/Developer/CoreSimulator/Devices/$DEVICEGUID/data/Containers/Data/Application/$APPLICATIONGUID/Documents/Videos MyComputer: NetworkShortcuts: Fonts: /Users/$USER/Library/Developer/CoreSimulator/Devices/$DEVICEGUID/data/Containers/Data/Application/$APPLICATIONGUID/Documents/.fonts Templates: /Users/$USER/Library/Developer/CoreSimulator/Devices/$DEVICEGUID/data/Containers/Data/Application/$APPLICATIONGUID/Documents/Templates CommonStartMenu: CommonPrograms: CommonStartup: CommonDesktopDirectory: PrinterShortcuts: InternetCache: /Users/$USER/Library/Developer/CoreSimulator/Devices/$DEVICEGUID/data/Containers/Data/Application/$APPLICATIONGUID/Library/Caches Cookies: History: Windows: MyPictures: /Users/$USER/Library/Developer/CoreSimulator/Devices/$DEVICEGUID/data/Containers/Data/Application/$APPLICATIONGUID/Documents/Pictures UserProfile: /Users/$USER/Library/Developer/CoreSimulator/Devices/$DEVICEGUID/data/Containers/Data/Application/$APPLICATIONGUID SystemX86: ProgramFilesX86: CommonProgramFiles: CommonProgramFilesX86: CommonTemplates: /usr/share/templates CommonDocuments: CommonAdminTools: AdminTools: CommonMusic: CommonPictures: CommonVideos: Resources: /Users/$USER/Library/Developer/CoreSimulator/Devices/$DEVICEGUID/data/Containers/Data/Application/$APPLICATIONGUID/Library LocalizedResources: CommonOemLinks: CDBurning:

Donde $ APPNAME es el nombre de su aplicación Xamarin (por ejemplo, MyApp.Droid)

Salida en iOS Simulator 10.3 usando Xamarin 7.2

SpecialFolder.MyDocuments: /var/mobile/Containers/Data/Application/$APPLICATIONGUID/Documents

Donde $ DEVICEGUID es el GUID del simulador (según el simulador seleccionado)

Salida en ipad 10.3 usando Xamarin 7.2

Fonts: C:/Windows/Fonts CommonStartMenu: C:/ProgramData/Microsoft/Windows/Start Menu CommonPrograms: C:/ProgramData/Microsoft/Windows/Start Menu/Programs CommonStartup: C:/ProgramData/Microsoft/Windows/Start Menu/Programs/Startup CommonDesktopDirectory: C:/Users/Public/Desktop CommonApplicationData: C:/ProgramData Windows: C:/Windows System: C:/Windows/system32 ProgramFiles: C:/Program Files (x86) SystemX86: C:/Windows/SysWOW64 ProgramFilesX86: C:/Program Files (x86) CommonProgramFiles: C:/Program Files (x86)/Common Files CommonProgramFilesX86: C:/Program Files (x86)/Common Files CommonTemplates: C:/ProgramData/Microsoft/Windows/Templates CommonDocuments: C:/Users/Public/Documents CommonAdminTools: C:/ProgramData/Microsoft/Windows/Start Menu/Programs/Administrative Tools CommonMusic: C:/Users/Public/Music CommonPictures: C:/Users/Public/Pictures CommonVideos: C:/Users/Public/Videos Resources: C:/Windows/resources LocalizedResources: CommonOemLinks:


Salida en Windows 10

foreach(Environment.SpecialFolder f in Enum.GetValues(typeof(Environment.SpecialFolder))) { string commonAppData = Environment.GetFolderPath(f); Console.WriteLine("{0}: {1}", f, commonAppData); } Console.ReadLine();

Fragmento de código si desea registrar su propio

SpecialFolder.CommonApplicationData: C:/ProgramData SpecialFolder.CommonDesktopDirectory: C:/Users/Public/Desktop SpecialFolder.CommonStartMenu: C:/ProgramData/Microsoft/Windows/Start Menu SpecialFolder.CommonPrograms: C:/ProgramData/Microsoft/Windows/Start Menu/Programs SpecialFolder.CommonProgramFiles: C:/Program Files/Common Files SpecialFolder.CommonProgramFilesX86: C:/Program Files (x86)/Common Files SpecialFolder.CommonStartup: C:/ProgramData/Microsoft/Windows/Start Menu/Programs/Startup SpecialFolder.ProgramFiles: C:/Program Files SpecialFolder.ProgramFilesX86: C:/Program Files (x86) SpecialFolder.System: C:/Windows/system32 SpecialFolder.SystemX86: C:/Windows/SysWOW64


Salida en Windows 7 (64 bits)

SpecialFolder.CommonApplicationData: C:/Documents and Settings/All Users/Application Data SpecialFolder.CommonDesktopDirectory: C:/Documents and Settings/All Users/Desktop SpecialFolder.CommonPrograms: C:/Documents and Settings/All Users/Start Menu/Programs SpecialFolder.CommonProgramFiles: C:/Program Files/Common Files SpecialFolder.CommonProgramFilesX86: SpecialFolder.CommonStartMenu: C:/Documents and Settings/All Users/Start Menu SpecialFolder.CommonStartup: C:/Documents and Settings/All Users/Start Menu/Programs/Startup SpecialFolder.ProgramFiles: C:/Program Files SpecialFolder.ProgramFilesX86: SpecialFolder.System: C:/WINDOWS/system32 SpecialFolder.SystemX86: C:/WINDOWS/system32

Salida en Windows XP

SpecialFolder.CommonApplicationData: C:/Documents and Settings/All Users/Application Data SpecialFolder.CommonDesktopDirectory: C:/Documents and Settings/All Users/Desktop SpecialFolder.CommonPrograms: C:/Documents and Settings/All Users/Start Menu/Programs SpecialFolder.CommonProgramFiles: C:/Program Files/Common Files SpecialFolder.CommonProgramFilesX86: SpecialFolder.CommonStartMenu: C:/Documents and Settings/All Users/Start Menu SpecialFolder.CommonStartup: C:/Documents and Settings/All Users/Start Menu/Programs/Startup SpecialFolder.ProgramFiles: C:/Program Files SpecialFolder.ProgramFilesX86: SpecialFolder.System: C:/WINDOWS/system32 SpecialFolder.SystemX86: C:/WINDOWS/system32