GetFolderPath API は、 Environment.SpecialFolder 列挙型によって識別されるシステムの特殊フォルダーへのパスを返します。 ただし、この動作は、macOS と Mac Catalyst で異なります。 次の表に、サポートされているすべての Environment.SpecialFolder 列挙型の値について、macOS と Mac Catalyst の動作の比較を示します。
Environment.SpecialFolder 列挙型値 | macOS で返されるパス | Mac Catalyst で返されるパス |
---|---|---|
AdminTools |
||
ApplicationData |
$HOME/ライブラリ/アプリケーション サポート | $HOME/ドキュメント/.config |
CDBurning |
||
CommonAdminTools |
||
CommonApplicationData |
/usr/share | /usr/share |
CommonDesktopDirectory |
||
CommonDocuments |
||
CommonMusic |
||
CommonOemLinks |
||
CommonPictures |
||
CommonProgramFiles |
||
CommonProgramFilesX86 |
||
CommonPrograms |
||
CommonStartMenu |
||
CommonStartup |
||
CommonTemplates |
/usr/共有/テンプレート | /usr/共有/テンプレート |
CommonVideos |
||
Cookies |
||
Desktop |
$HOME/デスクトップ | $HOME/ドキュメント/デスクトップ |
DesktopDirectory |
$HOME/デスクトップ | $HOME/ドキュメント/デスクトップ |
Favorites |
$HOME/ライブラリ/お気に入り | $HOME/ライブラリ/お気に入り |
Fonts |
$HOME/ライブラリ/フォント | $HOME/ドキュメント/.fonts |
History |
||
InternetCache |
$HOME/ライブラリ/キャッシュ | $HOME/ライブラリ/キャッシュ |
LocalApplicationData |
$HOME/ライブラリ/アプリケーション サポート | $HOME/ドキュメント |
LocalizedResources |
||
MyComputer |
||
MyDocuments |
$HOME/ドキュメント | $HOME/ドキュメント |
MyMusic |
$HOME/ミュージック | $HOME/ドキュメント/ミュージック |
MyPictures |
$HOME/ピクチャ | $HOME/ドキュメント/ピクチャ |
MyVideos |
$HOME/ムービー | $HOME/ドキュメント/ビデオ |
NetworkShortcuts |
||
Personal |
$HOME/ドキュメント | $HOME/ドキュメント |
PrinterShortcuts |
||
ProgramFiles |
/アプリケーション | $HOME/アプリケーション |
ProgramFilesX86 |
||
Programs |
||
Recent |
||
Resources |
$HOME/ライブラリ | |
SendTo |
||
StartMenu |
||
Startup |
||
System |
/システム | |
SystemX86 |
||
Templates |
$HOME/テンプレート | $HOME/ドキュメント/テンプレート |
UserProfile |
$HOME | $HOME |
Windows |
ApplicationData
、Desktop
、DesktopDirectory
、Fonts
、LocalApplicationData
、MyMusic
、MyPictures
、MyVideos
、ProgramFiles
、System
、Templates
について返されるシステム パスは、macOS と Mac Catalyst の場合で異なります。 これは、設計上、Mac Catalyst の動作を iOS と一致させているためです。
重要
$HOME
パスは、アプリ サンドボックス機能が有効か無効かにより、アプリ間で異なります。 サンドボックス環境では $HOME
が /Users/<username>/Library/Containers/<bundle-id>/Data
として解決されますが、非サンドボックス環境では /Users/<username>
として解決されます。 機能の詳細については、「Mac Catalyst の機能」を参照してください。
Mac Catalyst で macOS の動作を一致させる
Mac Catalyst で macOS アプリの動作を一致させ、同じシステム パスを使用する必要がある場合、そのようなパスを取得するため推奨される方法は下記のとおりです。
Environment.SpecialFolder.ApplicationData
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData, Environment.SpecialFolderOption.None)
の代わりにnew NSFileManager().GetUrls(NSSearchPathDirectory.ApplicationSupportDirectory, NSSearchPathDomain.User)[0].Path
を使用してください。Environment.SpecialFolder.Desktop
Environment.GetFolderPath(Environment.SpecialFolder.Desktop, Environment.SpecialFolderOption.None)
の代わりにnew NSFileManager().GetUrls(NSSearchPathDirectory.DesktopDirectory, NSSearchPathDomain.User)[0].Path
を使用してください。Environment.SpecialFolder.DesktopDirectory
Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory, Environment.SpecialFolderOption.None)
の代わりにnew NSFileManager().GetUrls(NSSearchPathDirectory.DesktopDirectory, NSSearchPathDomain.User)[0].Path
を使用してください。Environment.SpecialFolder.Fonts
Environment.GetFolderPath(Environment.SpecialFolder.Fonts, Environment.SpecialFolderOption.None)
の代わりにPath.Combine(new NSFileManager().GetUrls(NSSearchPathDirectory.LibraryDirectory, NSSearchPathDomain.User)[0].Path, "Fonts")
を使用してください。Environment.SpecialFolder.LocalApplicationData
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData, Environment.SpecialFolderOption.None)
の代わりにnew NSFileManager().GetUrls(NSSearchPathDirectory.ApplicationSupportDirectory, NSSearchPathDomain.User)[0].Path
を使用してください。Environment.SpecialFolder.MyMusic
Environment.GetFolderPath(Environment.SpecialFolder.MyMusic, Environment.SpecialFolderOption.None)
の代わりにnew NSFileManager().GetUrls(NSSearchPathDirectory.MusicDirectory, NSSearchPathDomain.User)[0].Path
を使用してください。Environment.SpecialFolder.MyPictures
Environment.GetFolderPath(Environment.SpecialFolder.MyPictures, Environment.SpecialFolderOption.None)
の代わりにnew NSFileManager().GetUrls(NSSearchPathDirectory.PicturesDirectory, NSSearchPathDomain.User)[0].Path
を使用してください。Environment.SpecialFolder.MyVideos
Environment.GetFolderPath(Environment.SpecialFolder.MyVideos, Environment.SpecialFolderOption.None)
の代わりにnew NSFileManager().GetUrls(NSSearchPathDirectory.MoviesDirectory, NSSearchPathDomain.User)[0].Path
を使用してください。Environment.SpecialFolder.ProgramFiles
Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles, Environment.SpecialFolderOption.None)
の代わりに"/Applications"
を使用してください。Environment.SpecialFolder.System
Environment.GetFolderPath(Environment.SpecialFolder.System, Environment.SpecialFolderOption.None)
の代わりに"/System"
を使用してください。Environment.SpecialFolder.Templates
Environment.GetFolderPath(Environment.SpecialFolder.Templates, Environment.SpecialFolderOption.None)
の代わりにPath.Combine(NSFileManager.HomeDirectory, "Templates")
を使用してください。
.NET MAUI