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