QStandardPaths Class

QStandardPaths クラスは、標準パスにアクセスするためのメソッドを提供します。詳細...

Header: #include <QStandardPaths>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

パブリック・タイプ

enum LocateOption { LocateFile, LocateDirectory }
flags LocateOptions
enum StandardLocation { DesktopLocation, DocumentsLocation, FontsLocation, ApplicationsLocation, MusicLocation, …, GenericStateLocation }

静的パブリック・メンバー

QString displayName(QStandardPaths::StandardLocation type)
QString findExecutable(const QString &executableName, const QStringList &paths = QStringList())
QString locate(QStandardPaths::StandardLocation type, const QString &fileName, QStandardPaths::LocateOptions options = LocateFile)
QStringList locateAll(QStandardPaths::StandardLocation type, const QString &fileName, QStandardPaths::LocateOptions options = LocateFile)
void setTestModeEnabled(bool testMode)
QStringList standardLocations(QStandardPaths::StandardLocation type)
QString writableLocation(QStandardPaths::StandardLocation type)

詳細説明

このクラスは、ユーザー固有のディレクトリやシステム全体の設定ディレクトリなどの一般的なタスクのために、ローカルファイルシステム上の標準的な場所を問い合わせる関数を含んでいます。

メンバ型ドキュメント

enum QStandardPaths::LocateOption
flags QStandardPaths::LocateOptions

この列挙型は、QStandardPaths::locate およびQStandardPaths::locateAll の振る舞いを制御するために使用できる、さまざまなフラグについて記述します。

定数説明
QStandardPaths::LocateFile0x0ファイルのみを返す
QStandardPaths::LocateDirectory0x1ディレクトリのみを返す

LocateOptions 型はQFlags<LocateOption> の typedef です。LocateOption の値の OR の組み合わせを格納します。

enum QStandardPaths::StandardLocation

この列挙型は、QStandardPaths::writableLocationQStandardPaths::standardLocationsQStandardPaths::displayName などのメソッドを使って問い合わせることができるさまざまな場所を記述しています。

この列挙型の値の中には、ユーザー設定を表すものもある。このような列挙値は、異なるアプリケーショ ンでも同じパスを返すので、他のアプリケーションとデータを共有するために使用できる。その他の値は、このアプリケーション固有のものである。以下の表の各列挙値は、それがアプリケーション固有のものなのか、汎用的なものなのかを説明している。

アプリケーション固有のディレクトリは、他のアプリケーションからは到達できないものとする。したがって、そこに置かれたファイルは、たとえ同じユーザーによって実行されたとしても、他のアプリケーションからは読むことができないかもしれません。一方、汎用ディレクトリは、そのユーザーが実行するすべてのアプリケーショ ンがアクセス可能であると仮定すべきであるが、他のユーザーのアプリケーションからは到達 できないものと仮定すべきである。

他のユーザーとのデータ交換は、QStandardPaths の範囲外である。

定数説明
QStandardPaths::DesktopLocation0ユーザのデスクトップディレクトリを返します。これは汎用的な値です。デスクトップの概念がないシステムでは、これは QStandardPaths::HomeLocation と同じです。
QStandardPaths::DocumentsLocation1ユーザ・ドキュメント・ファイルを含むディレクトリを返します。これは一般的な値です。返されるパスは決して空ではありません。
QStandardPaths::FontsLocation2ユーザーのフォントが含まれるディレクトリを返します。これは一般的な値です。フォントのインストールには、プラットフォーム固有の操作が必要になる場合があります。
QStandardPaths::ApplicationsLocation3ユーザ・アプリケーション(実行可能ファイル、アプリケーション・バンドル、またはそれらへのショートカットのいずれか)を含むディレクトリを返します。これは一般的な値です。アプリケーションのインストールには、プラットフォーム固有の操作が必要になる場合があります。このディレクトリ内のファイル、フォルダ、またはショートカットは、プラットフォーム固有です。
QStandardPaths::MusicLocation4ユーザーの音楽ファイルまたはその他のオーディオファイルが含まれるディレクトリを返します。これは一般的な値です。音楽ファイル専用のディレクトリが存在しない場合は、ユーザードキュメントを格納するための適切なフォールバックが返されます。
QStandardPaths::MoviesLocation5ユーザのムービーやビデオが格納されているディレクトリを返します。これは一般的な値です。ムービーファイル専用のディレクトリが存在しない場合は、ユーザドキュメントを格納するための適切なフォールバックが返されます。
QStandardPaths::PicturesLocation6ユーザの画像や写真が格納されているディレクトリを返します。これは一般的な値です。画像ファイル専用のディレクトリが存在しない場合は、ユーザドキュメントを格納するための適切なフォールバックが返されます。
QStandardPaths::TempLocation7一時ファイルを格納できるディレクトリを返します。返される値は、アプリケーション固有のものであったり、このユーザの他のアプリケーション間で共有されるものであったり、システム全体で共有されるものであったりします。返されるパスは決して空ではありません。
QStandardPaths::HomeLocation8ユーザのホーム・ディレクトリを返します(QDir::homePath ()と同じ)。Unixシステムでは、これはHOME環境変数と等しい。この値は一般的なものであったり、アプリケーション固有のものであったりしますが、返されるパスは決して空ではありません。
QStandardPaths::AppLocalDataLocation9Windowsオペレーティング・システム上のローカル設定パスを返します。その他のプラットフォームでは、AppDataLocation と同じ値を返します。この列挙値は Qt 5.4 で追加されました。
QStandardPaths::CacheLocation10ユーザー固有の非必須(キャッシュ)データを書き込むディレクトリの場所を返します。これはアプリケーション固有のディレクトリです。返されるパスは決して空ではありません。
QStandardPaths::GenericCacheLocation15アプリケーション間で共有される、ユーザー固有の非必須(キャッシュ)データを書き込むディレクトリの場所を返します。これは一般的な値です。システムに共有キャッシュの概念がない場合、返されるパスは空になる可能性があることに注意。
QStandardPaths::GenericDataLocation11アプリケーション間で共有される永続データを格納できるディレクトリの場所を返します。これは一般的な値です。返されるパスが空になることはありません。
QStandardPaths::RuntimeLocation12Unix ローカル・ソケットのように、実行時通信ファイルを書き込むディレクトリの場所を返します。これは一般的な値です。返されるパスは、システムによっては空になることがあります。
QStandardPaths::ConfigLocation13ユーザー固有の設定ファイルを書き込むディレクトリの場所を返します。これは一般的な値またはアプリケーション固有の値のいずれかであり、返されるパスが空になることはありません。
QStandardPaths::DownloadLocation14ユーザがダウンロードしたファイルを置くディレクトリを返します。これは一般的な値です。ダウンロードに特化したディレクトリが存在しない場合、ユーザードキュメントを格納するための賢明なフォールバックが返されます。
QStandardPaths::GenericConfigLocation16複数のアプリケーション間で共有されるユーザー固有の設定ファイルを書き込むディレクトリの場所を返します。これは汎用的な値であり、返されるパスが空になることはありません。
QStandardPaths::AppDataLocation17永続的なアプリケーション・データを格納できるディレクトリの場所を返します。これはアプリケーション固有のディレクトリです。他のアプリケーションと共有するデータを格納するパスを取得するには、QStandardPaths::GenericDataLocation を使用してください。返されるパスは決して空ではありません。Windows オペレーティング・システムでは、これはローミング・パスを返します。この列挙値は Qt 5.4 で追加されました。
QStandardPaths::AppConfigLocation18ユーザー固有の設定ファイルを書き込むディレクトリの場所を返します。これはアプリケーション固有のディレクトリで、返されるパスは決して空ではありません。この enum 値は Qt 5.5 で追加されました。
QStandardPaths::PublicShareLocation19ユーザー固有の公開共有ファイルやディレクトリが格納されるディレクトリの場所を返します。これは一般的な値です。システムがパブリックに共有された場所という概念を持っていない場合、返されるパスは空になる可能性があることに注意してください。この列挙値は Qt 6.4 で追加されました。
QStandardPaths::TemplatesLocation20ユーザー固有のテンプレート・ファイルを格納できるディレクトリの場所を返します。これは一般的な値です。システムにテンプレート・ロケーションの概念がない場合、返されるパスは空になる可能性があることに注意してください。この列挙値は Qt 6.4 で追加されました。
QStandardPaths::StateLocation (since Qt 6.7)21ユーザー固有のアプリケーション状態データファイルを書き込むディレクトリの場所を返します。これはアプリケーション固有のディレクトリであり、返されるパスが空になることはありません。
QStandardPaths::GenericStateLocation (since Qt 6.7)22アプリケーション間で共有される状態データ・ファイルを書き込むディレクトリの場所を返します。この値は汎用またはアプリケーション固有の場合がありますが、返されるパスが空になることはありません。

以下の表に、さまざまなオペレーティング・システムにおけるパスの例を示す。最初のパスは書き込み可能なパスである(特に断りのない限り)。その他の追加のパスがある場合は、書き込み不可能な場所を表します。

パスの種類macOSWindows
デスクトップの場所"~/デスクトップ""C:/Users/<USER>/Desktop"
ドキュメントの場所"~/ドキュメント""C:/Users/<USER>/Documents"
フォントの場所"/System/Library/Fonts" (書き込み不可)「C:/Windows/Fonts" (書き込み不可)
アプリケーションの場所"/Applications" (書き込み不可)"C:/Users/<USER>/AppData/Roaming/Microsoft/Windows/スタートメニュー/プログラム"
音楽の場所"~/Music""C:/Users/<USER>/Music"
ムービーロケーション"~/映画""C:/ユーザー/<USER>/ビデオ"
ピクチャーズロケーション"~/ピクチャ""C:/Users/<USER>/Pictures"
TempLocationOSがランダムに生成"C:/Users/<USER>/AppData/Local/Temp"
ホームロケーション"~""C:/Users/<USER>"
AppLocalDataロケーション"~/Library/Application Support/<APPNAME>"、"/Library/Application Support/<APPNAME>"。"<APPDIR>/../リソース""C:/Users/<USER>/AppData/Local/<APPNAME>"、"C:/ProgramData/<APPNAME>"、"<APPDIR>"、"<APPDIR>/data"、"<APPDIR>/data/<APPNAME>"
キャッシュロケーション"~/Library/Caches/<APPNAME>", "/Library/Caches/<APPNAME>""C:/Users/<USER>/AppData/Local/<APPNAME>/cache"
ステートロケーション"~/Library/Preferences/<APPNAME>/State""C:/Users/<USER>/AppData/Local/<APPNAME>/State", "C:/ProgramData/<APPNAME>/State"
GenericDataロケーション"~/Library/Application Support", "/Library/Application Support""C:/Users/<USER>/AppData/Local"、"C:/ProgramData"、"<APPDIR>"、"<APPDIR>/data"
ランタイムロケーション"~/ライブラリ/アプリケーションサポート""C:/Users/<USER>"
設定場所"~/Library/Preferences""C:/Users/<USER>/AppData/Local/<APPNAME>", "C:/ProgramData/<APPNAME>"
GenericConfigLocation"~/Library/Preferences""C:/Users/<USER>/AppData/Local"、"C:/ProgramData"
ダウンロード場所"~/ダウンロード""C:/Users/<USER>/Downloads"
キャッシュの場所"~/Library/Caches", "/Library/Caches""C:/Users/<USER>/AppData/Local/cache"
ジェネリックステートロケーション"~/Library/Preferences/State""C:/Users/<USER>/AppData/Local/State", "C:/ProgramData/State"
AppDataロケーション"~/Library/Application Support/<APPNAME>"、"/Library/Application Support/<APPNAME>"。"<APPDIR>/../リソース""C:/Users/<USER>/AppData/Roaming/<APPNAME>"、"C:/ProgramData/<APPNAME>"、"<APPDIR>"、"<APPDIR>/data"、"<APPDIR>/data/<APPNAME>"
AppConfigLocation"~/Library/Preferences/<APPNAME>""C:/Users/<USER>/AppData/Local/<APPNAME>", "C:/ProgramData/<APPNAME>"
パブリックシェアロケーション"~/パブリック""C:/Users/Public"
テンプレートロケーション"~/テンプレート""C:/Users/<USER>/AppData/Roaming/Microsoft/Windows/Templates"
パスの種類Linuxおよびその他のUNIXオペレーティング・システム
デスクトップの場所"~/デスクトップ"
ドキュメントの場所"~/ドキュメント"
フォントの場所"~/.fonts", "~/.local/share/fonts", "/usr/local/share/fonts", "/usr/share/fonts"
アプリケーションの場所"~/.local/share/applications"、"/usr/local/share/applications"、"/usr/share/applications"
音楽の場所"~/Music"
ムービーロケーション"~/ビデオ"
ピクチャロケーション"~/写真"
TempLocation"/tmp"
ホームロケーション"~"
AppLocalDataLocation"~/.local/share/<APPNAME>", "/usr/local/share/<APPNAME>", "/usr/share/<APPNAME>"
キャッシュロケーション"~/.cache/<APPNAME>"
ステートロケーション"~/.local/state/<APPNAME>"
GenericDataロケーション"~/.local/share", "/usr/local/share", "/usr/share"
ランタイムロケーション"/run/user/<USER>"
コンフィグロケーション"~/.config", "/etc/xdg"
ジェネリックコンフィグロケーション"~/.config"、"/etc/xdg"
ダウンロードロケーション"~/ダウンロード"
汎用キャッシュロケーション"~/.cache"
一般的な状態の場所"~/.local/state"
AppDataロケーション"~/.local/share/<APPNAME>", "/usr/local/share/<APPNAME>", "/usr/share/<APPNAME>"
AppConfigLocation"~/.config/<APPNAME>", "/etc/xdg/<APPNAME>"
パブリックシェアロケーション"~/Public"
テンプレートロケーション"~/テンプレート"
パスの種類アンドロイドiOS
デスクトップの場所"<APPROOT>/files""<APPROOT>/Documents/Desktop"
ドキュメントの場所"<USER>/Documents" [*], "<USER>/<APPNAME>/Documents""<APPROOT>/Documents"
フォントの場所"/system/fonts" (書き込み不可)"<APPROOT>/Library/フォント"
アプリケーションの場所未対応(読み取り不可ディレクトリ)未対応
音楽の場所"<USER>/Music" [*], "<USER>/<APPNAME>/Music""<APPROOT>/Documents/Music"
映画の場所"<USER>/Movies" [*], "<USER>/<APPNAME>/Movies""<APPROOT>/Documents/Movies"
写真の場所"<USER>/Pictures" [*], "<USER>/<APPNAME>/Pictures""<APPROOT>/Documents/Pictures", "assets-library://"
TempLocation"<APPROOT>/cache""<APPROOT>/tmp"
ホームロケーション"<APPROOT>/files"システム定義
AppLocalDataLocation"<APPROOT>/files", "<USER>/<APPNAME>/files""<APPROOT>/ライブラリ/アプリケーション・サポート"
キャッシュの場所"<APPROOT>/cache", "<USER>/<APPNAME>/cache""<APPROOT>/ライブラリ/キャッシュ"
ステートロケーション"<APPROOT>/files/state"
GenericStateLocation(共有ステートあり)"<APPROOT>/files/state"
汎用データロケーション"<USER>" [*] または "<USER>/<APPNAME>/files"。"<APPROOT>/Library/Application Support"
ランタイムロケーション"<APPROOT>/cache"サポートされていません
設定場所"<APPROOT>/ファイル/設定""<APPROOT>/Library/Preferences"
GenericConfigLocation"<APPROOT>/files/settings" (共有設定はありません)"<APPROOT>/Library/Preferences" (共有設定はありません)
ダウンロード場所"<USER>/Downloads" [*], "<USER>/<APPNAME>/Downloads""<APPROOT>/Documents/ダウンロード"
キャッシュの場所"<APPROOT>/cache" (共有キャッシュはありません)"<APPROOT>/Library/キャッシュ"
AppDataロケーション"<APPROOT>/files", "<USER>/<APPNAME>/files""<APPROOT>/Library/Application Support"
AppConfigLocation"<APPROOT>/files/settings""<APPROOT>/Library/Preferences/<APPNAME>"
パブリックシェアロケーション未対応未対応
テンプレートの場所未サポート未サポート

上の表で、<APPNAME> は通常、組織名、アプリケーション名、またはその両方、あるいはパッケージング時に生成される一意の名前です。同様に、<APPROOT>はこのアプリケーションがインストールされる場所(サンドボックスであることが多い)、<APPDIR>はアプリケーションの実行ファイルがあるディレクトリです。

上記のパスは、OSの設定やロケールによって変更されたり、将来のQtのバージョンで変更される可能性があるため、当てにしないでください。

注意 :Androidでは、外部ストレージ(<USER>の場所)にファイルを開いているアプリケーションは、外部ストレージがアンマウントされると強制終了します。

注意: Android 6.0 (API 23)以降では、QStandardPaths::writableLocation またはQStandardPaths::standardLocations を使用する場合、実行時に "WRITE_EXTERNAL_STORAGE" パーミッションを要求する必要があります。

注: Androidでは、GenericDataLocationへの読み書きには、READ_EXTERNAL_STORAGE/WRITE_EXTERNAL_STORAGEパーミッションが必要です。

注: [*] Android 11以降では、スコープドストレージモードでパブリックディレクトリに直接アクセスできなくなりました。そのため、"<USER>/DirName" 形式のパスは返されません。代わりに、ストレージアクセスフレームワーク(SAF)を使用するQFileDialog

注意: iOSの場合、QFileDialog::setDirectory ()に引数としてQStandardPaths::standardLocations(QStandardPaths::PicturesLocation).last() を渡すと、ユーザーのフォトアルバムにアクセスするためにネイティブのイメージピッカーダイアログが使用されます。返されたファイル名は、QFile や関連する API を使って読み込むことができます。この機能は Qt 5.5 で追加されました。

writableLocation(),standardLocations(),displayName(),locate(),locateAll()も参照してください

メンバー関数 ドキュメント

[static] QString QStandardPaths::displayName(QStandardPaths::StandardLocation type)

与えられた場所のローカライズされた表示名type を返すか、関連する場所が見つからない場合は空のQString を返します。

[static] QString QStandardPaths::findExecutable(const QString &executableName, const QStringList &paths = QStringList())

指定されたpaths にあるexecutableName という名前の実行ファイルを見つけるか、paths が空の場合はシステムパスを見つける。

ほとんどのオペレーティング・システムでは、システム・パスはPATH 環境変数によって決定される。実行可能ファイルを検索するディレクトリは、paths 引数で設定できます。自分のパスとシステムパスの両方を検索するには、findExecutableを2回呼び、1回はpathsを設定し、もう1回はpathsを空にします。シンボリックリンクは、呼び出された名前によって動作が変わる実行可能ファイルの場合の動作を保持するために、解決されません。

注意: Windowsでは、通常の実行可能ファイルの拡張子(PATHEXT環境変数による)が自動的に付加される。例えば、findExecutable("foo")呼び出しは、存在すればfoo.exe またはfoo.bat を見つける。

実行可能ファイルへの絶対ファイル・パスを返し、見つからない場合は空文字列を返す。

与えられたexecutableName が実行可能ファイルを指す絶対パスの場合、そのクリーンパスが返される。

[static] QString QStandardPaths::locate(QStandardPaths::StandardLocation type, const QString &fileName, QStandardPaths::LocateOptions options = LocateFile)

type の標準の場所にあるfileName というファイルまたはディレクトリを検索する。

options フラグを使用すると、ファイルまたはディレクトリのどちらを検索するかを指定できます。デフォルトでは、このフラグはLocateFile に設定されています。

最初に見つかったファイルまたはディレクトリへの絶対パスを返し、それ以外の場合は空文字列を返します。

[static] QStringList QStandardPaths::locateAll(QStandardPaths::StandardLocation type, const QString &fileName, QStandardPaths::LocateOptions options = LocateFile)

type の標準の場所にあるfileName という名前のすべてのファイルまたはディレクトリを検索します。

options フラグを使用すると、ファイルまたはディレクトリを検索するかどうかを指定できます。デフォルトでは、このフラグはLocateFile に設定されています。

見つかったすべてのファイルのリストを返します。

[static] void QStandardPaths::setTestModeEnabled(bool testMode)

testModetrue の場合、QStandardPaths の特別な「テスト・モード」が有効になり、書き込み可能な場所がテスト・ディレクトリを指すように変更される。これにより、自動テストが現在のユーザー設定を読み書きすることができなくなる。

これは、テストプログラムがファイルを書き込む可能性のある場所に影響します:GenericDataLocation AppDataLocationConfigLocationGenericConfigLocationAppConfigLocationStateLocationGenericStateLocationGenericCacheLocationCacheLocation 。その他の場所は影響を受けない。

Unixでは、XDG_DATA_HOME~/.qttest/share に、XDG_CONFIG_HOME~/.qttest/config に、XDG_STATE_HOME~/.qttest/state に、XDG_CACHE_HOME~/.qttest/cache に設定される。

macOSでは、データは~/.qttest/Application Support 、キャッシュは~/.qttest/Cache 、コンフィグは~/.qttest/Preferences

Windowsの場合、すべては%APPDATA% の下にある "qttest "ディレクトリに置かれる。

[static] QStringList QStandardPaths::standardLocations(QStandardPaths::StandardLocation type)

type のファイルが属するすべてのディレクトリを返す。

ディレクトリのリストは、優先順位の高いものから低いものへとソートされ、writableLocation() が特定できる場合は、そこから始まる。型の場所が定義されていない場合、このリストは空である。

writableLocation()も参照のこと

[static] QString QStandardPaths::writableLocation(QStandardPaths::StandardLocation type)

type のファイルが書き込まれるべきディレクトリを返すか、場所が特定できない場合は空文字列を返す。

つまり、システムまたはユーザーによって作成される必要があります。

ここに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。