2009-05-21 7 views
64

私はそれを理解しているので、Environment.GetFolderPathメソッドを使用することになっていますので、OSに依存しないコードです...Environment.GetFolderPath(... CommonApplicationData)は、Vistaでは "C: Documents and Settings "を返しています

Windows XPはC:\Documents and Settings\を使用します。 Windows VistaはC:\ProgramDataC:\Usersを使用します。

私はWindows Vistaコンピュータで以下のコードを使用しています。C:\ProgramDataの代わりにC:\Documents and Settings\ディレクトリを返しています。

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); 
    } 
+2

は、Vistaのインストールは、XPから更新しましたか? –

+0

いいえ、それは店から家に持ち帰ったときにVistaを決めました...私はそれがbestbuyか何かによってアップグレードされた可能性が高いと思われます。それが何かを指示するなら、c:\ documentsとsettingsは全く存在しません。 – blak3r

+0

"\\ mycompany \\ uid"をパスにどのように解決しますか?私はこの正確なパスを生成したいと思っています。アセンブリからこのデータを手動で追加する必要がありますか? –

答えて

142

私のインストーラは、XPコンピュータで生成されたlog.txtファイルをコピーしました。私はそれがVista上で生成されたと思ってログファイルを見ていた。一度、私はlog4netの設定を "Vista Compatible"に修正しました。 Environment.GetFolderPathが期待した結果を返していました。したがって、私はこの記事を閉じます。

次SpecialFolderパス参照が有用であるかもしれない:Windows Server 2003上で

出力:Vista上

 
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` 

出力:

 
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 
+0

Log4net構成がEnvironment.GetFolderPathと何が関係するのでしょうか? 「任意のアイデア」については、通常のユーザーとしては最初の結果が表示され、管理者として実行されている2番目の結果が表示されます。昇格したインストーラまたはサービスを実行しているとき –

+1

また、これらのリスティングを読んでいる初心者は、OS上のパスが必ずしも固定されているわけではないことに注意してください。 Never hardcode - 代わりにGetFolderPathを使用してください。そうしないと、いつでもごめんなさい。ああ、プラス演算子ではなくPath.Combineを使用してください。何らかの理由で 'Environment.SpecialFolder.CommonApplicationData'が' CommonApplicationData'を返した場合、wondows10には –

+0

が返されます。したがって、アプリケーションパス自体にフォルダを作成しています – mrid

25

出力のUbuntu 9.10上 - > Ubuntuの12.04でモノ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.System: 

SpecialFolder.Personal: /home/$USER 
モノ4.2.1の$ USERはXamarin 7.2

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: 

$を使ってAndroidの6上の現在のユーザー

出力である

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: 

とのUbuntu 16.04上

出力APPNAMEはXamarinアプリケーションの名前です(例: Xamarin 7.2を使用してiOSシミュレータ10.3上MyApp.Droid)

出力

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: 
$ DEVICEGUIDは、選択したシミュレータに応じて、シミュレータGUID()Xamarinを使ってiPadの10.3に

出力のある

7。あなたがWindows 7上で、独自の

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

出力(64ビット)

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 

の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 
5

出力をログに記録したい場合は、Windows 10

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: 

コードスニペットの2

SpecialFolder.MyDocuments: /var/mobile/Containers/Data/Application/$APPLICATIONGUID/Documents 
関連する問題