次の方法で共有


Mac Catalyst のシステムの特殊フォルダー

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

ApplicationDataDesktopDesktopDirectoryFontsLocalApplicationDataMyMusicMyPicturesMyVideosProgramFilesSystemTemplates について返されるシステム パスは、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") を使用してください。