Xamarin.Macで特殊ディレクトリのパスを取得する
実装:Environment.SpecialFolderを使う
Xamarin.MacでもEnvironmentクラスのGetFolderPathメソッドで色々と取得することもできる。 マルチプラットフォームでの互換性を考慮すると、EnvironmentクラスのGetFolderPathメソッドで取得可能な特殊ディレクトリであれば、環境依存のAPIよりもこちらを使うのが望ましいと思われる。 以下は2017年2月時点での値なので将来的に未対応のものに値が追加される可能性はある。
| Environment.SpecialFolder列挙体 | Environment.GetFolderPathの戻り値 |
|---|---|
| Desktop | /Users/{ユーザー}/Desktop |
| Programs | |
| MyDocuments | /Users/{ユーザー} |
| MyDocuments | /Users/{ユーザー} |
| Favorites | /Users/{ユーザー}/Library/Favorites |
| Startup | |
| Recent | |
| SendTo | |
| StartMenu | |
| MyMusic | /Users/{ユーザー}/Music |
| MyVideos | /Users/{ユーザー}/Videos |
| DesktopDirectory | /Users/{ユーザー}/Desktop |
| MyComputer | |
| NetworkShortcuts | |
| Fonts | /Users/{ユーザー}/Library/Fonts |
| Templates | /Users/{ユーザー}/Templates |
| CommonStartMenu | |
| CommonPrograms | |
| CommonStartup | |
| CommonDesktopDirectory | |
| ApplicationData | /Users/{ユーザー}/.config |
| PrinterShortcuts | |
| LocalApplicationData | /Users/{ユーザー}/.local/share |
| InternetCache | /Users/{ユーザー}/Library/Caches |
| Cookies | |
| History | |
| CommonApplicationData | /usr/share |
| Windows | |
| System | |
| ProgramFiles | /Applications |
| MyPictures | /Users/{ユーザー}/Pictures |
| UserProfile | /Users/{ユーザー} |
| SystemX86 | |
| ProgramFilesX86 | |
| CommonProgramFiles | |
| CommonProgramFilesX86 | |
| CommonTemplates | /usr/share/templates |
| CommonDocuments | |
| CommonAdminTools | |
| AdminTools | |
| CommonMusic | |
| CommonPictures | |
| CommonVideos | |
| Resources | |
| LocalizedResources | |
| CommonOemLinks | |
| CDBurning |
ちなみに上記の列挙には以下のようなソースコードを用いた。
foreach (var folder in Enum.GetValues(typeof(Environment.SpecialFolder)))
{
var path = Environment.GetFolderPath((Environment.SpecialFolder)folder);
Console.WriteLine("{0} => {1}", folder, path);
}
関連項目
- Xamarin.Mac/特殊ディレクトリのパスを取得する
- Xamarin.Android/特殊ディレクトリのパスを取得する
- Xamarin.Mac/NLogを使う
- Xamarin.Mac/plistファイルを読み書きする