さほど難しいことではないので必要なときに調べれば良いのだけど、プラットフォームごとにいちいち調べるのは面倒なのでまとめてみました。
Windowsでいうところのマイドキュメントや、Unix系のユーザーフォームのフォルダは環境やバージョンによって変わってしまいます。
このフォルダをハードコードするわけにも行きませんのでQtの力を使います。
というか、Qtがいい感じにしてくれます。
フォルダを取得するには「QStandardPaths」を使用します。
取得できる情報は列挙型「QStandardPaths::StandardLocation」で定義されています。Qt 5.1.xの時点で16種類あります。
例えば
StandardPaths::DesktopLocation 0
QStandardPaths::DocumentsLocation 1
QStandardPaths::FontsLocation 2
の、ような感じですがそれぞれの説明あらかじめ日本語で書くよりも具体的なパスを見たほうがピンとくると思いますのでプラットフォームごとにまとめます。
まとめの前に、使用するメソッドをいくつか消化します。
QStandardPaths::displayName
プラットフォームごとのフォルダの名称(呼び名)が取得できます。
QStandardPaths::standardLocations
いい感じにしてくれた結果のフォルダがQStringListで取得できます。リストの先頭から優先度の高いものが入っています。
空の時はそのシステムには存在しない種類のフォルダになります。
QStandardPaths::writableLocation
いい感じにしてくれた結果のフォルダが1つ取得できます。大抵は何かを書き込むために必要になったりすると思うのでこちらで十分かもしれません。
注意としては、取得したフォルダにアプリケーション名が含まれるため取得した時点でフォルダが存在しているとは限らないことです。
実際に使用する前にフォルダの存在を確認してなければ作成してください。
まとめは下のような構成で記載します。
No Enum定義名
displayName()の結果
writableLocation()の結果
(standardLocations()の結果)カッコで囲われて複数あるときはカンマ区切りです。
/// Windows 8.1の場合 ///
0 QStandardPaths::DesktopLocation
Desktop
C:/Users/USER_NAME/Desktop
(C:/Users/USER_NAME/Desktop)
1 QStandardPaths::DocumentsLocation
Documents
C:/Users/USER_NAME/Documents
(C:/Users/USER_NAME/Documents)
2 QStandardPaths::FontsLocation
Fonts
C:/WINDOWS/Fonts
(C:/WINDOWS/Fonts)
3 QStandardPaths::ApplicationsLocation
Applications
C:/Users/USER_NAME/AppData/Roaming/Microsoft/Windows/Start Menu/Programs
(C:/Users/USER_NAME/AppData/Roaming/Microsoft/Windows/Start Menu/Programs)
4 QStandardPaths::MusicLocation
Music
C:/Users/USER_NAME/Music
(C:/Users/USER_NAME/Music)
5 QStandardPaths::MoviesLocation
Movies
C:/Users/USER_NAME/Videos
(C:/Users/USER_NAME/Videos)
6 QStandardPaths::PicturesLocation
Pictures
C:/Users/USER_NAME/Pictures
(C:/Users/USER_NAME/Pictures)
7 QStandardPaths::TempLocation
Temporary Directory
C:/Users/USER_NAME/AppData/Local/Temp
(C:/Users/USER_NAME/AppData/Local/Temp)
8 QStandardPaths::HomeLocation
Home
C:/Users/USER_NAME
(C:/Users/USER_NAME)
9 QStandardPaths::DataLocation
Application Data
C:/Users/USER_NAME/AppData/Local/APP_NAME
(C:/Users/USER_NAME/AppData/Local/APP_NAME, C:/ProgramData/APP_NAME)
10 QStandardPaths::CacheLocation
Cache
C:/Users/USER_NAME/AppData/Local/APP_NAME/cache
(C:/Users/USER_NAME/AppData/Local/APP_NAME/cache)
11 QStandardPaths::GenericDataLocation
Shared Data
C:/Users/USER_NAME/AppData/Local
(C:/Users/USER_NAME/AppData/Local, C:/ProgramData)
12 QStandardPaths::RuntimeLocation
Runtime C:/Users/USER_NAME
(C:/Users/USER_NAME)
13 QStandardPaths::ConfigLocation
Configuration
C:/Users/USER_NAME/AppData/Local/APP_NAME
(C:/Users/USER_NAME/AppData/Local/APP_NAME, C:/ProgramData/APP_NAME)
14 QStandardPaths::DownloadLocation
Download
C:/Users/USER_NAME/Documents
(C:/Users/USER_NAME/Documents)
15 QStandardPaths::GenericCacheLocation
Shared Cache
C:/Users/Iori/AppData/Local/cache
(C:/Users/Iori/AppData/Local/cache)
/// Ubuntu 12.10の場合 ///
0 QStandardPaths::DesktopLocation
Desktop
/home/USER_NAME/デスクトップ
(/home/USER_NAME/デスクトップ)
1 QStandardPaths::DocumentsLocation
Documents
/home/USER_NAME/ドキュメント
(/home/USER_NAME/ドキュメント)
2 QStandardPaths::FontsLocation
Fonts
/home/USER_NAME/.fonts
(/home/USER_NAME/.fonts)
3 QStandardPaths::ApplicationsLocation
Applications
/home/USER_NAME/.local/share/applications
(/home/USER_NAME/.local/share/applications, /usr/share/ubuntu/applications, /usr/share/gnome/applications, /usr/local/share//applications, /usr/share//applications)
4 QStandardPaths::MusicLocation
Music
/home/USER_NAME/ミュージック
(/home/USER_NAME/ミュージック)
5 QStandardPaths::MoviesLocation
Movies
/home/USER_NAME/ビデオ
(/home/USER_NAME/ビデオ)
6 QStandardPaths::PicturesLocation
Pictures
/home/USER_NAME/ピクチャ
(/home/USER_NAME/ピクチャ)
7 QStandardPaths::TempLocation
Temporary Directory
/tmp
(/tmp)
8 QStandardPaths::HomeLocation
Home
/home/USER_NAME
(/home/USER_NAME)
9 QStandardPaths::DataLocation
Application Data
/home/USER_NAME/.local/share/APP_NAME
(/home/USER_NAME/.local/share/APP_NAME, /usr/share/ubuntu/APP_NAME, /usr/share/gnome/APP_NAME, /usr/local/share//APP_NAME, /usr/share//APP_NAME)
10 QStandardPaths::CacheLocation
Cache
/home/USER_NAME/.cache/APP_NAME
(/home/USER_NAME/.cache/APP_NAME)
11 QStandardPaths::GenericDataLocation
Shared Data
/home/USER_NAME/.local/share
(/home/USER_NAME/.local/share, /usr/share/ubuntu, /usr/share/gnome, /usr/local/share/, /usr/share/)
12 QStandardPaths::RuntimeLocation
Runtime
/run/user/USER_NAME
(/run/user/USER_NAME)
13 QStandardPaths::ConfigLocation
Configuration
/home/USER_NAME/.config
(/home/USER_NAME/.config, /etc/xdg/xdg-ubuntu, /etc/xdg)
14 QStandardPaths::DownloadLocation
Download
/home/USER_NAME/ダウンロード
(/home/USER_NAME/ダウンロード)
15 QStandardPaths::GenericCacheLocation
Shared Cache
/home/USER_NAME/.cache
(/home/USER_NAME/.cache)
/// Mac OS X 10.9の場合 ///
0 QStandardPaths::DesktopLocation
デスクトップ
/Users/USER_NAME/Desktop
(/Users/USER_NAME/Desktop)
1 QStandardPaths::DocumentsLocation
書類
/Users/USER_NAME/Documents
(/Users/USER_NAME/Documents)
2 QStandardPaths::FontsLocation
Fonts
/System/Library/Fonts
(/System/Library/Fonts)
3 QStandardPaths::ApplicationsLocation
アプリケーション
/Applications
(/Applications)
4 QStandardPaths::MusicLocation
ミュージック
/Users/USER_NAME/Music
(/Users/USER_NAME/Music)
5 QStandardPaths::MoviesLocation
ムービー
/Users/USER_NAME/Movies
(/Users/USER_NAME/Movies)
6 QStandardPaths::PicturesLocation
ピクチャ
/Users/USER_NAME/Pictures
(/Users/USER_NAME/Pictures)
7 QStandardPaths::TempLocation
TemporaryItems
/var/folders/n4/hz9yt0n12nj1d047sk4zy03m0000gn/T
(/var/folders/n4/hz9yt0n12nj1d047sk4zy03m0000gn/T)
8 QStandardPaths::HomeLocation
Home
/Users/USER_NAME
(/Users/USER_NAME)
9 QStandardPaths::DataLocation
Application Support
/Users/USER_NAME/Library/Application Support/APP_NAME
(/Users/USER_NAME/Library/Application Support/APP_NAME, /Library/Application Support/APP_NAME)
10 QStandardPaths::CacheLocation
Caches
/Users/USER_NAME/Library/Caches/APP_NAME
(/Users/USER_NAME/Library/Caches/APP_NAME, /Library/Caches/APP_NAME)
11 QStandardPaths::GenericDataLocation
Application Support
/Users/USER_NAME/Library/Application Support
(/Users/USER_NAME/Library/Application Support, /Library/Application Support)
12 QStandardPaths::RuntimeLocation
Application Support
/Users/USER_NAME/Library/Application Support
(/Users/USER_NAME/Library/Application Support)
13 QStandardPaths::ConfigLocation
Preferences
/Users/USER_NAME/Library/Preferences
(/Users/USER_NAME/Library/Preferences)
14 QStandardPaths::DownloadLocation
書類
/Users/USER_NAME/Documents
(/Users/USER_NAME/Documents)
15 QStandardPaths::GenericCacheLocation
Caches
/Users/USER_NAME/Library/Caches
(/Users/USER_NAME/Library/Caches, /Library/Caches)
MacのQStandardPaths::DownloadLocationは、本来は「/Users/USER_NAME/Downloads」が取得できるのではと思いますが謎です。
バグトラッカーにも登録されてなさそう・・・。
コメント