
macOSにおけるTauriのパスヘルパー関数のマッピング
Michael Charles Aubrey // Mon Nov 11 2024
Tauri v2 でデスクトップアプリを作っているのですが、ファイルシステム API の扱いにはずっと苦労していました。-apps/api/pathには、appCacheDir()やappConfigDir()など、よく使うディレクトリを取得するヘルパー関数がそろっています。公式ドキュメントもあるのですが、最初は見つけられませんでした。しかも、どの関数が実際にどこのパスに対応するのか、ぱっと見ではわかりにくい構成です。
ここでは、tauri.conf.jsonにcom.example.myappのような識別子を設定してあるものとします。
macOS で各ヘルパー関数がどこを指すのかを確かめたくて、小さなユーティリティ関数を書いてみました。実行するとこうなりました。
appCacheDir() -> /Users/{username}/Library/Caches/com.example.myapp
appConfigDir() -> /Users/{username}/Library/Application Support/com.example.myapp
appDataDir() -> /Users/{username}/Library/Application Support/com.example.myapp
appLocalDataDir() -> /Users/{username}/Library/Application Support/com.example.myapp
appLogDir() -> /Users/{username}/Library/Logs/com.example.myapp
audioDir() -> /Users/{username}/Music
cacheDir() -> /Users/{username}/Library/Caches
configDir() -> /Users/{username}/Library/Application Support
dataDir() -> /Users/{username}/Library/Application Support
desktopDir() -> /Users/{username}/Desktop
documentDir() -> /Users/{username}/Documents
downloadDir() -> /Users/{username}/Downloads
executableDir() -> Error: unknown path
fontDir() -> /Users/{username}/Library/Fonts
homeDir() -> /Users/{username}
localDataDir() -> /Users/{username}/Library/Application Support
pictureDir() -> /Users/{username}/Pictures
publicDir() -> /Users/{username}/Public
resourceDir() -> /Users/{username}/Projects/personal/myapp/src-tauri/target/debug
tempDir() -> /var/folders/wk/{temp_folder}/T/
templateDir() -> Error: unknown path
videoDir() -> /Users/{username}/Movies
気づいた点をいくつか。
- アプリ固有のディレクトリ(
appCacheDir、appConfigDirなど)は、標準のシステムパスの末尾にアプリの識別子が付きます executableDirとtemplateDirは macOS では利用できません- 開発中の
resourceDirは、デバッグビルドのディレクトリを指します - 複数のディレクトリが同じ場所を指すことがあります(例:
appConfigDir、appDataDir、appLocalDataDir)
Linux、そして特に Windows では、これらのパスは違うはずです。時間ができたら、その辺りも調べて続編を書きたいところです。とりあえず、macOS で Tauri を触っている方の参考になればうれしいです。