このページでは

QStandardPaths Class

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

ヘッダー: #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::writableLocation 、QStandardPaths::standardLocations 、QStandardPaths::displayName などのメソッドを使用してクエリを実行できるさまざまな場所を表します。

QStandardPaths 各ロケーションは、2つの独立した軸、すなわち「アプリスコープ」(呼び出し元アプリケーションに限定されるか、アプリケーション間で共有されるか)と「ユーザースコープ」(呼び出し元ユーザーのディレクトリを起点とするか、システム全体に及ぶか)に沿って定義されます。以下の各列挙値はそのアプリスコープを示しており、さらに下にあるプラットフォームテーブルにはそのユーザースコープが示されています。

他のユーザーとのデータ交換は、QStandardPaths の適用範囲外です。

アプリスコープ

保存場所は、アプリケーション固有(呼び出し元アプリケーションに限定)か、汎用(同じユーザーが実行するアプリケーション間で共有)のいずれかです。アプリケーション固有の保存場所は、たとえ同じユーザーが実行している場合でも、他のアプリケーションからはアクセスできないものとみなすべきです。

サンドボックス化されたアプリケーション

iOS、Android、macOS などのプラットフォームにおけるサンドボックス化されたアプリケーションの場合、汎用ロケーションであっても、アプリケーションのサンドボックスコンテナ内に配置されることがあります(下表の「<APPROOT> 」)。 実際にはこれにより、アプリスコープの区別が解消され、すべての保存場所は事実上アプリケーション固有となり、ユーザーのシステム全体で共有されるディレクトリには、システムが提供するピッカー(例:QFileDialog )を通じてのみアクセス可能となります。

ユーザースコープ

ロケーションは、ユーザーローカル(呼び出し元のユーザーのホームディレクトリまたはユーザーごとのディレクトリにルートを持つ)か、システム全体(OS またはパッケージマネージャーによって作成され、ユーザー間で共有され、通常はアプリケーションに対して読み取り専用)のいずれかです。

writableLocation() を呼び出すと、ファイルが書き込まれるべきディレクトリが返されます。これは通常、ユーザースコープです。アプリケーション固有の場所については、呼び出し元アプリケーションのスコープにもなります。

standardLocations() を呼び出すと、書き込み可能なパスが最初に返され(特定可能な場合)、その後に 0 個以上の追加の場所が返されます。これには、ユーザーローカルおよびシステムワイドのフォールバックの両方が含まれます。これらの追加の場所は、locate() およびlocateAll() によって、既存のファイルを検索するために使用されます。

サンドボックス化されたアプリケーション

サンドボックス化されたアプリケーションの場合、システム全体の場所は通常、アプリケーションのサンドボックスコンテナの外にあり、アプリケーションの観点からは存在しない可能性があり、読み取りや書き込みが可能であることは言うまでもありません。 これらは、サンドボックス化されていないケースとの対称性を保つため、また、権限やユーザー主導のピッカーを通じてアクセスが許可されたアプリケーションを網羅するために、以下のプラットフォームテーブルに依然として記載されています。呼び出し元は、standardLocations() によって返されるすべてのエントリが存在する、あるいはアクセス可能であると想定すべきではありません。

定数値説明
QStandardPaths::DesktopLocation0ユーザーのデスクトップディレクトリ。デスクトップの概念がないシステムでは、これは 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設定ファイルを書き込むべきディレクトリ。返されるパスが空になることは決してない。汎用またはアプリケーション固有の場合がある(明示的なバリエーションについては AppConfigLocation および GenericConfigLocation を参照)。状況により異なる。
QStandardPaths::DownloadLocation14ダウンロードされたファイル用のディレクトリ。そのようなディレクトリが存在しない場合、ドキュメントを保存するための妥当な代替パスが返される。汎用。
QStandardPaths::GenericConfigLocation16複数のアプリケーション間で共有される設定ファイルを書き込むべきディレクトリ。返されるパスが空になることはありません。汎用。
QStandardPaths::AppDataLocation17永続的なアプリケーションデータを保存できるディレクトリ。他のアプリケーションと共有するデータを保存するパスを取得するには、GenericDataLocationを使用してください。返されるパスが空になることはありません。Windowsでは、ローミングパスが返されます。アプリケーション固有。この列挙型値はQt 5.4で追加されました。
QStandardPaths::AppConfigLocation18設定ファイルを書き込むべきディレクトリ。返されるパスが空になることはありません。アプリケーション固有。この列挙値は 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
デスクトップの場所"~/Desktop""C:/Users/<USER>/Desktop"
ドキュメントの保存場所"~/ドキュメント""C:/Users/<USER>/Documents"
フォントの保存場所"~/Library/Fonts", "/Library/Fonts", "/System/Library/Fonts""C:/Windows/Fonts" (書き込み不可)
アプリケーションの場所"~/Applications", "/Applications""C:/Users/<USER>/AppData/Roaming/Microsoft/Windows/Start Menu/Programs"
音楽の保存場所"~/Music""C:/Users/<USER>/Music"
MoviesLocation"~/Movies""C:/Users/<USER>/Videos"
画像の保存場所"~/Pictures""C:/Users/<USER>/Pictures"
一時保存場所OSによってランダムに生成される"C:/Users/<USER>/AppData/Local/Temp"
ホームディレクトリ"~""C:/Users/<USER>"
AppLocalDataの場所"~/Library/Application Support/<APPNAME>", "/Library/Application Support/<APPNAME>" "<APPDIR>/../Resources""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"
汎用データ保存場所"~/Library/Application Support", "/Library/Application Support""C:/Users/<USER>/AppData/Local", "C:/ProgramData", "<APPDIR>", "<APPDIR>/data"
実行時データ保存場所"~/Library/Application Support""C:/Users/<USER>"
設定場所"~/Library/Preferences", "/Library/Preferences""C:/Users/<USER>/AppData/Local/<APPNAME>", "C:/ProgramData/<APPNAME>"
GenericConfigLocation"~/Library/Preferences", "/Library/Preferences""C:/Users/<USER>/AppData/Local", "C:/ProgramData"
DownloadLocation"~/Downloads""C:/Users/<USER>/Downloads"
汎用キャッシュの場所"~/Library/Caches", "/Library/Caches", "/System/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>/../Resources""C:/Users/<USER>/AppData/Roaming/<APPNAME>", "C:/ProgramData/<APPNAME>", "<APPDIR>", "<APPDIR>/data", "<APPDIR>/data/<APPNAME>"
AppConfigLocation"~/Library/Preferences/<APPNAME>", "/Library/Preferences/<APPNAME>""C:/Users/<USER>/AppData/Local/<APPNAME>", "C:/ProgramData/<APPNAME>"
PublicShareLocation"~/Public""C:/Users/Public"
テンプレートの保存場所サポートされていません"C:/Users/<USER>/AppData/Roaming/Microsoft/Windows/Templates"

注: macOSでは 、アプリケーションがサンドボックス化されている場合、オペレーティングシステムはユーザーのホームディレクトリを、~/Library/Containers/<BUNDLE-ID>/Data にあるアプリケーションごとのコンテナへ透過的にリダイレクトします。上記の macOS に関する表は引き続き適用され、ユーザールートにあるエントリについては、~ は実質的に<APPROOT> に解決されます。/Library/... 、/System/Library/... 、<APPDIR>/../Resources などのシステム全体のフォールバックは、対称性を保つために記載されていますが、通常、明示的な権限がない限りアクセスできません。

パス型Linux およびその他の UNIX オペレーティングシステム
DesktopLocation"~/Desktop"
ドキュメントの場所"~/Documents"
フォントの保存場所"~/.fonts", "~/.local/share/fonts", "/usr/local/share/fonts", "/usr/share/fonts"
アプリケーションの保存場所"~/.local/share/applications", "/usr/local/share/applications", "/usr/share/applications"
音楽の保存場所"~/Music"
動画の保存場所"~/Videos"
画像の保存場所"~/Pictures"
一時ファイルの保存場所"/tmp"
ホームディレクトリ"~"
アプリローカルデータ保存場所"~/.local/share/<APPNAME>", "/usr/local/share/<APPNAME>", "/usr/share/<APPNAME>"
キャッシュの保存場所"~/.cache/<APPNAME>"
状態の保存場所"~/.local/state/<APPNAME>"
汎用データ保存先"~/.local/share", "/usr/local/share", "/usr/share"
実行時保存先"/run/user/<USER>"
設定場所"~/.config", "/etc/xdg"
汎用設定場所"~/.config", "/etc/xdg"
ダウンロード先"~/Downloads"
汎用キャッシュ保存場所"~/.cache"
汎用状態保存場所"~/.local/state"
AppDataの保存先"~/.local/share/<APPNAME>", "/usr/local/share/<APPNAME>", "/usr/share/<APPNAME>"
AppConfigLocation"~/.config/<APPNAME>", "/etc/xdg/<APPNAME>"
パブリック共有の場所"~/Public"
TemplatesLocation"~/Templates"
パス種別AndroidiOS
デスクトップの場所"<APPROOT>/files""<APPROOT>/Documents/Desktop"
ドキュメントの保存先"<USER>/Documents" [*], "<USER>/<APPNAME>/Documents""<APPROOT>/Documents"
フォントの保存場所"/system/fonts" (書き込み不可)"<APPROOT>/Library/Fonts"
ApplicationsLocation未対応(ディレクトリが読み取り不可)未対応
MusicLocation"<USER>/Music" [*], "<USER>/<APPNAME>/Music""<APPROOT>/Documents/Music"
MoviesLocation"<USER>/Movies" [*], "<USER>/<APPNAME>/Movies""<APPROOT>/Documents/Movies"
PicturesLocation"<USER>/Pictures" [*], "<USER>/<APPNAME>/Pictures""<APPROOT>/Documents/Pictures", "assets-library://"
TempLocation"<APPROOT>/cache""<APPROOT>/tmp"
ホームディレクトリ"<APPROOT>/files"システム定義
AppLocalDataLocation"<APPROOT>/files", "<USER>/<APPNAME>/files""<APPROOT>/Library/Application Support"
CacheLocation"<APPROOT>/cache", "<USER>/<APPNAME>/cache""<APPROOT>/Library/Caches"
状態の保存場所"<APPROOT>/files/state""<APPROOT>/Library/Preferences/<APPNAME>/State"
汎用状態保存場所(共有状態がある場合)"<APPROOT>/files/state""<APPROOT>/Library/Preferences/State"
汎用データ保存場所"<USER>" [*] または "<USER>/<APPNAME>/files""<APPROOT>/Library/Application Support"
実行時保存場所"<APPROOT>/cache""<APPROOT>/Library/Application Support"
ConfigLocation"<APPROOT>/files/settings""<APPROOT>/Library/Preferences"
GenericConfigLocation"<APPROOT>/files/settings"(共有設定はありません)"<APPROOT>/Library/Preferences"
ダウンロード先"<USER>/Downloads" [*]、"<USER>/<APPNAME>/Downloads""<APPROOT>/Documents/Downloads"
GenericCacheLocation"<APPROOT>/cache" (共有キャッシュはありません)"<APPROOT>/Library/Caches"
AppDataLocation"<APPROOT>/files", "<USER>/<APPNAME>/files""<APPROOT>/Library/Application Support"
AppConfigLocation"<APPROOT>/files/settings""<APPROOT>/Library/Preferences/<APPNAME>"
PublicShareLocation未対応"<APPROOT>/Public"
TemplatesLocation未対応未対応

上記の表において、<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" という形式のパスは返されません。代わりに、Storage Access Framework (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` を設定して、2 回目は `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)

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

この設定は、テストプログラムがファイルを書き込む可能性のある以下の場所に影響します:GenericDataLocation 、AppDataLocation 、ConfigLocation 、GenericConfigLocation 、AppConfigLocation 、StateLocation 、GenericStateLocation 、GenericCacheLocation 、およびCacheLocation 。その他の場所は影響を受けません。

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() が特定できる場合は、そこから始まります。type に対応する場所が定義されていない場合、このリストは空になります。

writableLocation()も参照してください 。

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

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

注: 返される保存先は 存在しない場合があります。つまり、システムまたはユーザーによって作成する必要がある場合があります。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.