😎

[Rust] 規定のディレクトリを取得する dirs クレートを使ってみた

2022/03/29に公開

他の記事で書いたけど Path に含まれる ~/ を展開するには home-dir がぴったりだった。
当初は dirs というクレートを使って自力で変換しないといけないのかな、と考えていたけど結局 home-dir の方が用途に合っていた。
でも dirs の方も気になるので一応試してみる。

環境: macOS 11.6.4

use dirs;

dirs::audio_dir()      // => Some("/Users/alice/Music")
dirs::cache_dir()      // => Some("/Users/alice/Library/Caches")
dirs::config_dir()     // => Some("/Users/alice/Library/Application Support")
dirs::data_dir()       // => Some("/Users/alice/Library/Application Support")
dirs::data_local_dir() // => Some("/Users/alice/Library/Application Support")
dirs::desktop_dir()    // => Some("/Users/alice/Desktop")
dirs::document_dir()   // => Some("/Users/alice/Documents")
dirs::download_dir()   // => Some("/Users/alice/Downloads")
dirs::executable_dir() // => None
dirs::font_dir()       // => Some("/Users/alice/Library/Fonts")
dirs::home_dir()       // => Some("/Users/alice")
dirs::picture_dir()    // => Some("/Users/alice/Pictures")
dirs::preference_dir() // => Some("/Users/alice/Library/Preferences")
dirs::public_dir()     // => Some("/Users/alice/Public")
dirs::runtime_dir()    // => None
dirs::state_dir()      // => None
dirs::template_dir()   // => None
dirs::video_dir()      // => Some("/Users/alice/Movies")

上のメソッドがすべてらしい。

Mac と Windows 両方に対応したアプリを作る際に便利そう。

Discussion