このページでは

QFileInfo Class

QFileInfo クラスは、ファイルシステムエントリに関する情報を取得するための、OS に依存しない API を提供します。詳細...

ヘッダー: #include <QFileInfo>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

注:このクラスのすべての関数は再入可能です。

QFileInfo の比較

カテゴリ比較可能な型
等価性QFileInfo

パブリック関数

QFileInfo()
QFileInfo(const QFileDevice &file)
QFileInfo(const QString &path)
(since 6.0) QFileInfo(const std::filesystem::path &file)
QFileInfo(const QDir &dir, const QString &path)
(since 6.0) QFileInfo(const QDir &dir, const std::filesystem::path &path)
QFileInfo(const QFileInfo &fileinfo)
(since 6.12) QFileInfo(QFileInfo &&other)
~QFileInfo()
QDir absoluteDir() const
QString absoluteFilePath() const
QString absolutePath() const
QString baseName() const
QDateTime birthTime() const
(since 6.6) QDateTime birthTime(const QTimeZone &tz) const
QString bundleName() const
bool caching() const
QString canonicalFilePath() const
QString canonicalPath() const
QString completeBaseName() const
QString completeSuffix() const
QDir dir() const
bool exists() const
QString fileName() const
QString filePath() const
QDateTime fileTime(QFileDevice::FileTime time) const
(since 6.6) QDateTime fileTime(QFileDevice::FileTime time, const QTimeZone &tz) const
(since 6.0) std::filesystem::path filesystemAbsoluteFilePath() const
(since 6.0) std::filesystem::path filesystemAbsolutePath() const
(since 6.0) std::filesystem::path filesystemCanonicalFilePath() const
(since 6.0) std::filesystem::path filesystemCanonicalPath() const
(since 6.0) std::filesystem::path filesystemFilePath() const
(since 6.2) std::filesystem::path filesystemJunctionTarget() const
(since 6.0) std::filesystem::path filesystemPath() const
(since 6.6) std::filesystem::path filesystemReadSymLink() const
(since 6.0) std::filesystem::path filesystemSymLinkTarget() const
QString group() const
uint groupId() const
bool isAbsolute() const
(since 6.4) bool isAlias() const
bool isBundle() const
bool isDir() const
bool isExecutable() const
bool isFile() const
bool isHidden() const
bool isJunction() const
bool isNativePath() const
(since 6.10) bool isOther() const
bool isReadable() const
bool isRelative() const
bool isRoot() const
bool isShortcut() const
bool isSymLink() const
bool isSymbolicLink() const
bool isWritable() const
(since 6.2) QString junctionTarget() const
QDateTime lastModified() const
(since 6.6) QDateTime lastModified(const QTimeZone &tz) const
QDateTime lastRead() const
(since 6.6) QDateTime lastRead(const QTimeZone &tz) const
bool makeAbsolute()
QDateTime metadataChangeTime() const
(since 6.6) QDateTime metadataChangeTime(const QTimeZone &tz) const
QString owner() const
uint ownerId() const
QString path() const
bool permission(QFileDevice::Permissions permissions) const
QFileDevice::Permissions permissions() const
(since 6.6) QString readSymLink() const
void refresh()
void setCaching(bool enable)
void setFile(const QString &path)
(since 6.0) void setFile(const std::filesystem::path &path)
void setFile(const QFileDevice &file)
void setFile(const QDir &dir, const QString &path)
qint64 size() const
(since 6.0) void stat()
QString suffix() const
void swap(QFileInfo &other)
QString symLinkTarget() const
QFileInfo &operator=(QFileInfo &&other)
QFileInfo &operator=(const QFileInfo &fileinfo)

静的パブリックメンバー

bool exists(const QString &path)
QFileInfoList
bool operator!=(const QFileInfo &lhs, const QFileInfo &rhs)
bool operator==(const QFileInfo &lhs, const QFileInfo &rhs)

マクロ

詳細な説明

QFileInfo は、ファイルシステムエントリに関する情報(名前、パス、アクセス権、およびそれが通常ファイル、ディレクトリ、シンボリックリンクのいずれであるかなど)を提供します。エントリのサイズや最終変更日時・最終読み取り日時も取得可能です。また、QFileInfo を使用して Qtリソースに関する情報を取得することもできます。

QFileInfo は、絶対パスまたは相対パスのいずれかを使用して、ファイルシステムエントリを指定することができます。

  • Unix では、絶対パスはディレクトリ区切り文字'/' で始まります。Windows では、絶対パスはドライブ指定で始まります(例:D:/ )。
  • 相対パスは、ディレクトリ名または通常ファイル名で始まり、現在の作業ディレクトリを基準としたファイルシステムエントリのパスを指定します。

絶対パスの例としては、文字列 `"/tmp/quartz"` が挙げられます。相対パスは、`"src/fatlib"` のような形式になります。関数 `isRelative()` を使用すると、QFileInfo が相対パスを使用しているか絶対パスを使用しているかを確認できます。関数 `makeAbsolute()` を呼び出すことで、相対パスの QFileInfo を絶対パスに変換できます。

注: コロン (:) で始まるパスは 、QResource (絶対パス)を示すため、常に絶対パスとみなされます。

QFileInfoが操作するファイルシステムエントリのパスは、コンストラクタ内、またはその後でsetFile() を使用して設定されます。exists() を使用すると、そのエントリが実際に存在するかどうかを確認でき、size() を使用するとそのサイズを取得できます。

ファイルシステムエントリのタイプは、isFile()、isDir()、およびisSymLink() で取得できます。symLinkTarget() 関数は、シンボリックリンクが指すターゲットの絶対パスを返します。

ファイルシステムエントリのパス要素は、path() およびfileName() を使用して抽出できます。fileName() の各部分は、baseName()、suffix()、またはcompleteSuffix() を使用して抽出できます。 Qt クラスによって作成されたディレクトリを参照する QFileInfo オブジェクトには、末尾のディレクトリ区切り文字'/' は含まれません。独自のファイル情報オブジェクトで末尾の区切り文字を使用したい場合は、コンストラクタまたはsetFile() に渡すエントリのパスに、区切り文字を付加してください。

日付および時刻に関する情報は、birthTime()、fileTime()、lastModified()、lastRead()、およびmetadataChangeTime()によって返されます。アクセス権限に関する情報は、isReadable()、isWritable()、およびisExecutable()を使用して取得できます。 所有権情報は、owner()、ownerId()、group()、およびgroupId() を使用して取得できます。また、permission() 関数を使用すると、1 つのステートメントで権限と所有権を確認することもできます。

Unix(macOS や iOS を含む)では、Unix はシンボリックリンクを透過的に処理するため、このクラスのプロパティ取得関数は、シンボリックリンク自体ではなく、そのターゲットのアクセス時間やサイズなどのプロパティを返します。QFile を使用してシンボリックリンクを開くと、実質的にそのリンクのターゲットが開かれます。例えば:

#ifdef Q_OS_UNIX

QFileInfo info1("/home/bob/bin/untabify");
info1.isSymLink();          // returns true
info1.absoluteFilePath();   // returns "/home/bob/bin/untabify"
info1.size();               // returns 56201
info1.symLinkTarget();      // returns "/opt/pretty++/bin/untabify"

QFileInfo info2(info1.symLinkTarget());
info2.isSymLink();          // returns false
info2.absoluteFilePath();   // returns "/opt/pretty++/bin/untabify"
info2.size();               // returns 56201

#endif

Windows では、ショートカット(.lnk ファイル)は現在、シンボリックリンクとして扱われています。Unix システムと同様に、プロパティのゲッターは.lnk ファイル自体ではなく、ターゲットのサイズを返します。この動作は非推奨となっており、将来の Qt バージョンで削除される見込みです。それ以降は、.lnk ファイルは通常のファイルとして扱われるようになります。

#ifdef Q_OS_WIN

QFileInfo info1("C:\\Users\\Bob\\untabify.lnk");
info1.isSymLink();          // returns true
info1.absoluteFilePath();   // returns "C:/Users/Bob/untabify.lnk"
info1.size();               // returns 63942
info1.symLinkTarget();      // returns "C:/Pretty++/untabify"

QFileInfo info2(info1.symLinkTarget());
info2.isSymLink();          // returns false
info2.absoluteFilePath();   // returns "C:/Pretty++/untabify"
info2.size();               // returns 63942

#endif

NTFSのアクセス権

NTFS ファイルシステムでは、パフォーマンス上の理由から、所有権およびアクセス権のチェックはデフォルトで無効になっています。これを有効にするには、次の行を追加してください:

extern Q_CORE_EXPORT int qt_ntfs_permission_lookup;

これにより、qt_ntfs_permission_lookup を 1 増減させることで、アクセス権のチェックをオンまたはオフに切り替えることができます。

qt_ntfs_permission_lookup++; // turn checking on
qt_ntfs_permission_lookup--; // turn it off again

注: これは非アトミックなグローバル変数であるため 、qt_ntfs_permission_lookup の増減は、メインスレッド以外のスレッドがすべて開始される前、またはメインスレッド以外のすべてのスレッドが終了した後でのみ安全に行えます。

注: Qt 6.6以降、 変数 `qt_ntfs_permission_lookup ` は非推奨となっています。以下の代替手段を使用してください。

権限チェックを安全かつ簡単に管理するには、RAII クラス `QNtfsPermissionCheckGuard` を使用します。

void complexFunction()
{
    QNtfsPermissionCheckGuard permissionGuard;  // check is enabled

    // do complex things here that need permission check enabled

}   // as the guard goes out of scope the check is disabled

よりきめ細かな制御が必要な場合は、代わりに以下の関数を使用して権限を管理することも可能です:

qAreNtfsPermissionChecksEnabled();   // ステータスを確認
qEnableNtfsPermissionChecks();       // turn checking on
qDisableNtfsPermissionChecks();      // turn it off again

パフォーマンスに関する考慮事項

QFileInfo の関数の中にはファイルシステムへの問い合わせが必要なものがありますが、パフォーマンス上の理由から、パス文字列のみを操作する関数もあります。例えば、相対パスのエントリの絶対パスを返すには、absolutePath() がファイルシステムに問い合わせを行う必要があります。一方、path() 関数はファイル名を直接操作できるため、処理が高速です。

また、QFileInfo は、参照しているファイルシステムエントリに関する情報をキャッシュします。ファイルシステムは他のユーザーやプログラム、あるいは同じプログラムの他の部分によって変更される可能性があるため、QFileInfo に保存されている情報を更新する関数、すなわちrefresh() が用意されています。 QFileInfoのキャッシュ機能を無効にする(つまり、情報を要求するたびに基盤となるファイルシステムへの照会を強制する)には、setCaching(false)を呼び出します。

ファイルシステムからの情報の取得は、通常、(場合によっては)負荷の高いシステム関数の呼び出しによって行われるため、QFileInfo は(実装によっては)生成時にファイルシステムからすべての情報を取得しない可能性があります。すべての情報を直ちにファイルシステムから読み込むようにするには、stat() メンバ関数を使用してください。

birthTime()、fileTime()、lastModified()、lastRead()、およびmetadataChangeTime() は、デフォルトでローカル時間の時刻を返します。ネイティブのファイルシステム API は通常 UTC を使用するため、これには変換が必要です。実際にローカル時間を必要としない場合は、QTimeZone::UTC で直接時刻を要求することで、この変換を回避できます。

プラットフォーム固有の問題

Android では、コンテンツ URI を扱う際にいくつかの制限があります:

QDir およびQFileも参照してください 。

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

QFileInfo::QFileInfo()

ファイルシステム上のどのエントリにも参照していない、空の QFileInfo オブジェクトを生成します。

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

[explicit] QFileInfo::QFileInfo(const QFileDevice &file)

ファイル `file` に関する情報を提供する新しい `QFileInfo` オブジェクトを作成します。

file が相対パスを指定している場合、QFileInfo も相対パスを持ちます。

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

[explicit] QFileInfo::QFileInfo(const QString &path)

path (絶対パスまたは相対パス)にあるファイルシステムエントリに関する情報を提供する QFileInfo を生成します。

path が相対パスである場合、QFileInfo も相対パスを持ちます。

setFile()、isRelative()、QDir::setCurrent()、およびQDir::isRelativePath()も参照してください 。

[since 6.0] QFileInfo::QFileInfo(const std::filesystem::path &file)

指定されたfile に関する情報を提供する新しいQFileInfoを生成します。

この関数は Qt 6.0 で導入されました。

setFile()、isRelative()、QDir::setCurrent()、およびQDir::isRelativePath()も参照してください 。

[explicit] QFileInfo::QFileInfo(const QDir &dir, const QString &path)

指定されたファイルシステムエントリ `path ` に関する情報を、ディレクトリ `dir` を基準として提供する新しい `QFileInfo` オブジェクトを作成します。

dir が相対パスである場合、QFileInfo も相対パスになります。

path が絶対パスである場合、dir で指定されたディレクトリは無視されます。

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

[since 6.0] QFileInfo::QFileInfo(const QDir &dir, const std::filesystem::path &path)

ディレクトリ `dir` を基準として、path にあるファイルシステムエントリに関する情報を提供する新しい `QFileInfo` オブジェクトを作成します。

dir が相対パスである場合、QFileInfo も相対パスになります。

path が絶対パスである場合、dir で指定されたディレクトリは無視されます。

この関数は Qt 6.0 で導入されました。

QFileInfo::QFileInfo(const QFileInfo &fileinfo)

指定されたfileinfo のコピーである新しいQFileInfoを作成します。

[constexpr noexcept default, since 6.12] QFileInfo::QFileInfo(QFileInfo &&other)

other から新しい QFileInfo を移動生成します。

注:移動元のオブジェクト `other `は 、部分的に形成された状態になります。この状態では、有効な操作は破棄と新しい値への代入のみです。

この関数は Qt 6.12 で導入されました。

[noexcept] QFileInfo::~QFileInfo()

QFileInfo を破棄し、そのリソースを解放します。

QDir QFileInfo::absoluteDir() const

このQFileInfo が参照するファイルシステムエントリの親ディレクトリの絶対パスを表すQDir オブジェクトを返します。

// 現在の作業ディレクトリが "/home/user/Documents/memos/" である場合
QFileInfo info1(u"relativeFile"_s);
qDebug() << info1.absolutePath(); // "/home/user/Documents/memos/"
qDebug() << info1.baseName(); // "relativeFile"
qDebug() << info1.absoluteDir(); // QDir(u"/home/user/Documents/memos"_s)
qDebug() << info1.absoluteDir().path(); // "/home/user/Documents/memos"

// ディレクトリに対する QFileInfo
QFileInfo info2(u"/home/user/Documents/memos"_s);
qDebug() << info2.absolutePath(); // "/home/user/Documents"
qDebug() << info2.baseName(); // "memos"
qDebug() << info2.absoluteDir(); // QDir(u"/home/user/Documents"_s)
qDebug() << info2.absoluteDir().path(); // "/home/user/Documents"

dir()、filePath()、fileName()、およびisRelative()も参照してください 。

QString QFileInfo::absoluteFilePath() const

QFileInfo が参照するファイルシステムエントリの絶対フルパスを、エントリ名を含めて返します。

Unix では、絶対パスはディレクトリ区切り文字'/' で始まります。Windows では、絶対パスはドライブ指定で始まります(例:D:/ )。

Windows では、ドライブ文字にマップされていないネットワーク共有のパスは、//sharename/ で始まります。

QFileInfo はドライブ文字を大文字に変換します。QDir ではこの処理が行われない点に注意してください。以下のコードスニペットでこれを示します。

    QFileInfo fi("c:/temp/foo");
    qDebug() << fi.absoluteFilePath(); // "C:/temp/foo"

この関数は、isRelative()がtrueでない限り、filePath()と同じ結果を返します。canonicalFilePath()とは異なり、シンボリックリンクや余分な「.」や「..」の要素は必ずしも削除されません。

警告: filePath() の値が空の場合 、この関数の動作は未定義となります。

filePath()、canonicalFilePath()、およびisRelative()も参照してください 。

QString QFileInfo::absolutePath() const

QFileInfo が指すファイルシステムエントリの絶対パスを、エントリ名を除いて返します。

Unix では、絶対パスはディレクトリ区切り文字'/' で始まります。Windows では、絶対パスはドライブ指定で始まります (例:D:/)。

Windows では、ドライブ文字にマップされていないネットワーク共有のパスは、//sharename/ で始まります。

canonicalPath() とは対照的に、シンボリックリンクや余分な「.」や「..」は必ずしも削除されません。

警告: filePath() が空の場合 、この関数の動作は未定義となります。

関連項目: absoluteFilePath()、path()、canonicalPath()、fileName()、およびisRelative()。

QString QFileInfo::baseName() const

パスを除いたファイルのベース名を返します。

ベース名は、ファイル名内の最初の「.」文字(これを除く)までのすべての文字で構成されます。

例:

QFileInfo fi("/tmp/archive.tar.gz");
QString base = fi.baseName();  // base = "archive"

ファイルのベース名は、ファイルの命名規則に関係なく、すべてのプラットフォームで同じように計算されます(たとえば、Unix の「.bashrc」の場合、ベース名は空で、サフィックスは「bashrc」となります)。

fileName()、suffix()、completeSuffix()、およびcompleteBaseName()も参照してください 。

QDateTime QFileInfo::birthTime() const

ファイルが作成(生成)された日時を、現地時間で返します。

ファイルの作成時刻が利用できない場合、この関数は無効なQDateTime を返します。

ファイルがシンボリックリンクである場合、この関数はシンボリックリンク自体ではなく、そのターゲットに関する情報を返します。

この関数は QFileInfo::birthTime(constQTimeZone &tz) をオーバーロードしており、birthTime(QTimeZone::LocalTime) と同じ値を返します。

lastModified()、lastRead()、metadataChangeTime()、およびfileTime()も参照してください 。

[since 6.6] QDateTime QFileInfo::birthTime(const QTimeZone &tz) const

ファイルが作成(生成)された日時を返します。

返される時刻は、tz で指定されたタイムゾーンに基づきます。たとえば、QTimeZone::LocalTime またはQTimeZone::UTC を使用すると、それぞれローカルタイムゾーンまたはUTCでの時刻を取得できます。ネイティブのファイルシステムAPIは通常UTCを使用するため、変換が不要なQTimeZone::UTC を使用する方が高速な場合が多いです。

ファイルの作成時刻が利用できない場合、この関数は無効なQDateTime を返します。

ファイルがシンボリックリンクである場合、この関数はシンボリックリンク自体ではなく、そのターゲットに関する情報を返します。

この関数は Qt 6.6 で導入されました。

関連項目: lastModified(const QTimeZone &)、lastRead(const QTimeZone &)、metadataChangeTime(const QTimeZone &)、およびfileTime(QFileDevice::FileTime, const QTimeZone &)。

QString QFileInfo::bundleName() const

バンドルの名前を返します。

macOS および iOS では、パス `isBundle()` に一致する場合、そのバンドルの適切なローカライズされた名前を返します。その他のすべてのプラットフォームでは、空の `QString ` が返されます。

例:

QFileInfo fi("/Applications/Safari.app");
QString bundle = fi.bundleName();                // name = "Safari"

関連項目: isBundle()、filePath()、baseName()、およびsuffix()を参照してください 。

bool QFileInfo::caching() const

キャッシュが有効になっている場合は `true ` を返し、そうでない場合は `false` を返します。

setCaching() およびrefresh()も参照してください 。

QString QFileInfo::canonicalFilePath() const

ファイルシステムエントリの正規パス(エントリ名を含む)を返します。つまり、シンボリックリンクや、余分な'.' や'..' 要素を含まない絶対パスです。

このメソッドは、エントリが存在しない場合、到達できない場合(例えば、現在のユーザーがディレクトリパスへのアクセス権を持っていない場合)、またはパスの正規化中にエラーが発生した場合(通常はダングリングシンボリックリンクが原因)、空の文字列を返します。

filePath()、absoluteFilePath()、およびdir()も参照してください 。

QString QFileInfo::canonicalPath() const

ファイルシステムエントリの正規パス(エントリ名を除く)を返します。つまり、シンボリックリンクや余分な「.」や「..」要素を含まない絶対パスです。

このメソッドは、エントリが存在しない場合、アクセスできない場合(例えば、現在のユーザーがディレクトリパスへのアクセス権を持っていない場合)、またはパスの正規化中にエラーが発生した場合(通常はダングリングシンボリックリンクが原因)、空の文字列を返します。

path() およびabsolutePath()も参照してください 。

QString QFileInfo::completeBaseName() const

パスを除いたファイルの完全なベース名を返します。

完全なベース名は、ファイル名内の最後の「.」文字まで(その文字は含まない)のすべての文字で構成されます。

例:

QFileInfo fi("/tmp/archive.tar.gz");
QString base = fi.completeBaseName();  // base = "archive.tar"

関連項目: fileName()、suffix()、completeSuffix()、およびbaseName()。

QString QFileInfo::completeSuffix() const

ファイルの完全なサフィックス(拡張子)を返します。

完全な拡張子は、最初の「.」の直後(ただし「.」自体は含まない)にある、ファイル名のすべての文字で構成されます。

例:

QFileInfo fi("/tmp/archive.tar.gz");
QString ext = fi.completeSuffix();  // ext = "tar.gz"

関連項目: fileName()、suffix()、baseName()、およびcompleteBaseName()。

QDir QFileInfo::dir() const

この `QFileInfo ` が参照するファイルシステムエントリの親ディレクトリのパスを表す `QDir ` オブジェクトを返します。

注: QFileInfo がディレクトリを表している場合でも、返されるQDir は 常にそのオブジェクトの親ディレクトリに対応します。

以下の各ケースにおいて、dir() はQDir "~/examples/191697" を返します。

    QFileInfo fileInfo1("~/examples/191697/.");
    QFileInfo fileInfo2("~/examples/191697/..");
    QFileInfo fileInfo3("~/examples/191697/main.cpp");

以下の各ケースにおいて、dir() はQDir "." を返します。

    QFileInfo fileInfo4(".");
    QFileInfo fileInfo5("..");
    QFileInfo fileInfo6("main.cpp");

absolutePath()、filePath()、fileName()、isRelative()、およびabsoluteDir()も参照してください 。

bool QFileInfo::exists() const

QFileInfo が指すファイルシステムエントリが存在する場合、true を返します。存在しない場合は、false を返します。

注: エントリが存在しないターゲットを指すシンボリックリンクである場合 、このメソッドは `false` を返します。

[static] bool QFileInfo::exists(const QString &path)

ファイルシステムエントリ `path ` が存在する場合、true を返します。存在しない場合は、false を返します。

注: path が存在しないターゲットを指すシンボリックリンクである場合 、このメソッドはfalse を返します。

注: ファイルシステムへのアクセスにおいて、この関数を使用する方が 、QFileInfo(path).exists() を使用するよりも高速です。

QString QFileInfo::fileName() const

この `QFileInfo ` が参照するファイルシステムエントリの名前を、パスを除いて返します。

例:

QFileInfo fi("/tmp/archive.tar.gz");
QString name = fi.fileName();                // name = "archive.tar.gz"

注: このQFileInfo に、ディレクトリ区切り文字'/' で終わるパスが指定された場合 、エントリの名前部分は空とみなされます。

関連項目: isRelative()、filePath()、baseName()、およびsuffix()。

QString QFileInfo::filePath() const

この `QFileInfo ` が参照するファイルシステムエントリのパスを返します。パスは絶対パスまたは相対パスのいずれかです。

absoluteFilePath()、canonicalFilePath()、およびisRelative()も参照してください 。

QDateTime QFileInfo::fileTime(QFileDevice::FileTime time) const

time で指定されたファイルの時刻を返します。

時刻を特定できない場合は、無効な日時が返されます。

ファイルがシンボリックリンクである場合、この関数はシンボリックリンクそのものではなく、ターゲットに関する情報を返します。

この関数は、QFileInfo::fileTime(QFileDevice::FileTime, const QTimeZone &) をオーバーロードしており、fileTime(time, QTimeZone::LocalTime) と同じ値を返します。

birthTime()、lastModified()、lastRead()、およびmetadataChangeTime()も参照してください 。

[since 6.6] QDateTime QFileInfo::fileTime(QFileDevice::FileTime time, const QTimeZone &tz) const

time で指定されたファイルの時刻を返します。

返される時刻は、tz で指定されたタイムゾーンに基づきます。たとえば、QTimeZone::LocalTime またはQTimeZone::UTC を使用すると、それぞれローカルタイムゾーンまたは UTC での時刻を取得できます。ネイティブのファイルシステム API は通常 UTC を使用するため、QTimeZone::UTC を使用すると変換が不要になるため、多くの場合高速に処理されます。

時刻を特定できない場合は、無効な日時が返されます。

ファイルがシンボリックリンクの場合、この関数はシンボリックリンク自体ではなく、そのターゲットに関する情報を返します。

この関数は Qt 6.6 で導入されました。

関連項目: birthTime(const QTimeZone &)、lastModified(const QTimeZone &)、lastRead(const QTimeZone &)、metadataChangeTime(const QTimeZone &)、およびQDateTime::isValid()。

[since 6.0] std::filesystem::path QFileInfo::filesystemAbsoluteFilePath() const

absoluteFilePath() をstd::filesystem::path として返します。

この関数は Qt 6.0 で導入されました。

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

[since 6.0] std::filesystem::path QFileInfo::filesystemAbsolutePath() const

absolutePath() をstd::filesystem::path として返します。

この関数は Qt 6.0 で導入されました。

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

[since 6.0] std::filesystem::path QFileInfo::filesystemCanonicalFilePath() const

canonicalFilePath() をstd::filesystem::path として返します。

この関数は Qt 6.0 で導入されました。

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

[since 6.0] std::filesystem::path QFileInfo::filesystemCanonicalPath() const

canonicalPath() をstd::filesystem::path として返します。

この関数は Qt 6.0 で導入されました。

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

[since 6.0] std::filesystem::path QFileInfo::filesystemFilePath() const

filePath() をstd::filesystem::path として返します。

この関数は Qt 6.0 で導入されました。

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

[since 6.2] std::filesystem::path QFileInfo::filesystemJunctionTarget() const

junctionTarget() をstd::filesystem::path として返します。

この関数は Qt 6.2 で導入されました。

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

[since 6.0] std::filesystem::path QFileInfo::filesystemPath() const

path() をstd::filesystem::path として返します。

この関数は Qt 6.0 で導入されました。

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

readSymLink() を `std::filesystem::path` として返します。

この関数は Qt 6.6 で導入されました。

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

[since 6.0] std::filesystem::path QFileInfo::filesystemSymLinkTarget() const

symLinkTarget() をstd::filesystem::path として返します。

この関数は Qt 6.0 で導入されました。

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

QString QFileInfo::group() const

ファイルのグループを返します。Windows や、ファイルにグループがないシステム、あるいはエラーが発生した場合は、空の文字列が返されます。

Unix 環境では、この関数の実行に時間がかかる場合があります(数ミリ秒程度)。

ファイルがシンボリックリンクである場合、この関数はシンボリックリンク自体ではなく、そのターゲットに関する情報を返します。

groupId()、owner()、およびownerId()も参照してください 。

uint QFileInfo::groupId() const

ファイルが属するグループのIDを返します。

Windows およびファイルにグループがないシステムでは、この関数は常に (uint) -2 を返します。

ファイルがシンボリックリンクである場合、この関数はシンボリックリンク自体ではなく、そのターゲットに関する情報を返します。

group()、owner()、およびownerId()も参照してください 。

bool QFileInfo::isAbsolute() const

ファイルシステムエントリのパスが絶対パスである場合は `true ` を返し、そうでない場合は `false ` を返します(つまり、パスが相対パスであることを示します)。

注: コロン (:) で始まるパスは 、QResource を示すため、常に絶対パスとみなされます。

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

[since 6.4] bool QFileInfo::isAlias() const

このオブジェクトがエイリアスを指している場合は `true ` を返し、そうでない場合は `false` を返します。

エイリアスは macOS でのみ存在します。これらは通常のファイルとして扱われるため、エイリアスを開くとファイル自体が開かれます。エイリアスが参照するファイルやディレクトリを開くには、symLinkTarget() を使用してください。

注: エイリアスが存在しないファイルを指している場合でも 、isAlias() は true を返します。

この関数は Qt 6.4 で導入されました。

関連項目: isFile()、isDir()、isSymLink()、およびsymLinkTarget()。

bool QFileInfo::isBundle() const

このオブジェクトがmacOSおよびiOS上でバンドル、またはバンドルへのシンボリックリンクを指している場合はtrue を返し、それ以外の場合はfalse を返します。

ファイルがシンボリックリンクである場合、この関数はシンボリックリンク自体ではなく、そのターゲットに関する情報を返します。

isDir()、isSymLink()、およびisFile()も参照してください 。

bool QFileInfo::isDir() const

このオブジェクトがディレクトリ、またはディレクトリへのシンボリックリンクを指している場合は、true を返します。オブジェクトがディレクトリ以外(ファイルなど)を指している場合、または存在しないものを指している場合は、false を返します。

ファイルがシンボリックリンクである場合、この関数はシンボリックリンク自体ではなく、そのターゲットに関する情報を返します。

isFile()、isSymLink()、およびisBundle()も参照してください 。

bool QFileInfo::isExecutable() const

この `QFileInfo ` が指すファイルシステムエントリが実行可能であれば `true ` を返し、そうでない場合は `false` を返します。

ファイルがシンボリックリンクである場合、この関数はシンボリックリンク自体ではなく、そのターゲットに関する情報を返します。

isReadable()、isWritable()、およびpermission()も参照してください 。

bool QFileInfo::isFile() const

このオブジェクトがファイル、またはファイルへのシンボリックリンクを指している場合は、true を返します。オブジェクトがファイルではないもの(ディレクトリなど)や、存在しないものを指している場合は、false を返します。

ファイルがシンボリックリンクである場合、この関数はシンボリックリンク自体ではなく、そのターゲットに関する情報を返します。

isDir()、isSymLink()、およびisBundle()も参照してください 。

bool QFileInfo::isHidden() const

QFileInfo が指すファイルシステムエントリが `hidden' である場合は `true ' を返し、それ以外の場合は `false' を返します。

注:この関数は、Unix において特殊エントリ「.」および「..」に対してtrue を返します。これは、QDir::entryList がそれらを「shown」として扱う場合でも同様です。また、この関数はファイル名を検査するため、Unix では、対象のファイルがシンボリックリンクである場合、ターゲットの名前ではなくシンボリックリンクの名前を検査することに注意してください。

Windowsでは、ターゲットファイル(シンボリックリンクそのものではなく)が隠しファイルである場合、この関数はtrue を返します。

bool QFileInfo::isJunction() const

オブジェクトがジャンクションを指している場合は `true ` を返し、そうでない場合は `false` を返します。

ジャンクションは Windows の NTFS ファイルシステム上にのみ存在し、通常は `mklink ` コマンドによって作成されます。これらはディレクトリ用のシンボリックリンクと見なすことができ、ローカルボリューム上の絶対パスに対してのみ作成可能です。

bool QFileInfo::isNativePath() const

ファイルパスがネイティブAPIで直接使用できる場合は、true を返します。それ以外の場合で、Qtリソースシステムなど、Qt内部の仮想ファイルシステムによってファイルがサポートされている場合は、false を返します。

注:ネイティブパスであっても、プラットフォームやネイティブAPIの入力要件によっては、パス区切り文字や文字エンコーディングの変換が必要になる場合があります。

関連項目: QDir::toNativeSeparators()、QFile::encodeName()、filePath()、absoluteFilePath()、およびcanonicalFilePath()。

[since 6.10] bool QFileInfo::isOther() const

この `QFileInfo ` が、ディレクトリ、通常ファイル、またはシンボリックリンクではないファイルシステムエントリを指している場合、true を返します。それ以外の場合は、false を返します。

この `QFileInfo ` が存在しないエントリを指している場合、このメソッドは `false` を返します。

エントリがダングリングシンボリックリンク(ターゲットが存在しない)である場合、このメソッドは `false` を返します。ダングリングシンボリックリンクでない場合、この関数はシンボリックリンク自体ではなく、ターゲットに関する情報を返します。

Unix において、特殊(その他)ファイルシステムエントリとは、FIFO、ソケット、キャラクタデバイス、またはブロックデバイスを指します。詳細については、 mknod マニュアルページを参照してください。

Windows では(歴史的な理由により、Symbolic Links and Shortcuts を参照)、このメソッドは `.lnk ` ファイルに対して `true ` を返します。

この関数は Qt 6.10 で導入されました。

isDir()、isFile()、isSymLink()、およびQDirListing::IteratorFlag::ExcludeOtherも参照してください 。

bool QFileInfo::isReadable() const

ユーザーが、QFileInfo が指すファイルシステムエントリを読み取れる場合は、true を返します。それ以外の場合は、false を返します。

ファイルがシンボリックリンクである場合、この関数はシンボリックリンク自体ではなく、そのターゲットに関する情報を返します。

注: NTFS permissions のチェックが有効になっていない場合 、Windows での結果は、そのエントリが存在するかどうかのみを反映します。

関連項目: isWritable(),isExecutable(),permission().

bool QFileInfo::isRelative() const

ファイルシステムエントリのパスが相対パスの場合は `true ` を返し、それ以外の場合は `false ` を返します(つまり、パスが絶対パスである場合)。

Unix では、絶対パスはディレクトリ区切り文字'/' で始まります。Windows では、絶対パスはドライブ指定で始まります(例:D:/ )。

注: コロン (:) で始まるパスは 、QResource を示すため、常に絶対パスとみなされます。

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

bool QFileInfo::isRoot() const

オブジェクトがディレクトリ、またはディレクトリへのシンボリックリンクを指しており、かつそのディレクトリがルートディレクトリである場合は、true を返します。それ以外の場合は、false を返します。

bool QFileInfo::isShortcut() const

このオブジェクトがショートカットを指している場合は `true ` を返し、そうでない場合は `false` を返します。

ショートカットは Windows にのみ存在し、通常は `.lnk ` ファイルです。たとえば、Windows 上のショートカット(`*.lnk ` ファイル)に対しては true が返されますが、Unix(macOS および iOS を含む)上では false が返されます。

ショートカット(.lnk)ファイルは通常のファイルとして扱われます。これらを開くと、.lnk ファイル自体が開かれます。ショートカットが参照するファイルを開くには、ショートカットに対してsymLinkTarget()を呼び出す必要があります。

注: ショートカット(破損したショートカット)が存在しないファイルを指している場合でも 、isShortcut()はtrueを返します。

関連項目: isFile()、isDir()、isSymbolicLink()、およびsymLinkTarget()。

このオブジェクトがシンボリックリンク、ショートカット、またはエイリアスを指している場合は `true ` を返し、それ以外の場合は `false` を返します。

シンボリックリンクは、Unix(macOS および iOS を含む)および Windows に存在し、通常はそれぞれ `ln -s ` コマンドまたは `mklink ` コマンドによって作成されます。シンボリックリンクを開くことは、実質的に `link's target` を開くこととなります。

さらに、Windows 上のショートカット(*.lnk ファイル)や macOS 上のエイリアスについても true が返されます。この挙動は非推奨となっており、将来の Qt バージョンで変更される可能性があります。ショートカットやエイリアスを開くと、.lnk またはエイリアスファイル自体が開かれます。

例:

QFileInfo info(fileName);
if (info.isSymLink())
    fileName = info.symLinkTarget();

注: exists() は、シンボリックリンクが既存のターゲットを指している場合はtrue を返し、そうでない場合はfalse を返します。

関連項目: isFile()、isDir()、およびsymLinkTarget()。

このオブジェクトがシンボリックリンクを指している場合は `true ` を返し、そうでない場合は `false` を返します。

シンボリックリンクは、Unix(macOS および iOS を含む)および Windows(NTFS シンボリックリンク)に存在し、通常はそれぞれ `ln -s ` コマンドまたは `mklink ` コマンドによって作成されます。

Unix ではシンボリックリンクが透過的に処理されます。シンボリックリンクを開くことは、実質的にlink's target を開くことと同じです。

isSymLink() とは対照的に、Windows のショートカット(*.lnk ファイル)や macOS のエイリアスに対しては false が返されます。代わりにQFileInfo::isShortcut() およびQFileInfo::isAlias() を使用してください。

注: exists() は、シンボリックリンクが既存のターゲットを指している場合はtrue を返し、そうでない場合はfalse を返します。

isFile()、isDir()、isShortcut()、およびsymLinkTarget()も参照してください 。

bool QFileInfo::isWritable() const

ユーザーが、この `QFileInfo ` が指すファイルシステムエントリに書き込み可能な場合は `true ` を返し、そうでない場合は `false` を返します。

ファイルがシンボリックリンクである場合、この関数はシンボリックリンク自体ではなく、そのターゲットに関する情報を返します。

注: NTFS permissions のチェックが有効になっていない場合 、Windows での結果は、そのエントリが「読み取り専用」としてマークされているかどうかのみに反映されます。

関連項目: isReadable(),isExecutable(),permission().

[since 6.2] QString QFileInfo::junctionTarget() const

NTFS ジャンクションを、それが参照するパスに変換します。

NTFSジャンクションが指すディレクトリへの絶対パスを返します。オブジェクトがNTFSジャンクションでない場合は、空の文字列を返します。

NTFS ジャンクションで指定されたディレクトリが実際に存在することを保証するものではありません。

この関数は Qt 6.2 で導入されました。

isJunction()、isFile()、isDir()、isSymLink()、isSymbolicLink()、およびisShortcut()も参照してください 。

QDateTime QFileInfo::lastModified() const

ファイルが最後に変更された日時を返します。

ファイルがシンボリックリンクである場合、この関数はシンボリックリンク自体ではなく、そのターゲットに関する情報を返します。

この関数は、QFileInfo::lastModified(const QTimeZone &) をオーバーロードしており、lastModified(QTimeZone::LocalTime) と同じ値を返します。

birthTime()、lastRead()、metadataChangeTime()、およびfileTime()も参照してください 。

[since 6.6] QDateTime QFileInfo::lastModified(const QTimeZone &tz) const

ファイルが最後に変更された日時を返します。

返される時刻は、tz で指定されたタイムゾーンに基づきます。たとえば、QTimeZone::LocalTime またはQTimeZone::UTC を使用すると、それぞれローカルタイムゾーンまたはUTCでの時刻を取得できます。ネイティブのファイルシステムAPIは通常UTCを使用するため、QTimeZone::UTC を使用すると変換が不要となり、多くの場合高速に処理できます。

ファイルがシンボリックリンクの場合、この関数はシンボリックリンク自体ではなく、そのターゲットに関する情報を返します。

この関数は Qt 6.6 で導入されました。

関連項目: birthTime (const QTimeZone &)、lastRead (const QTimeZone &)、metadataChangeTime (const QTimeZone &)、およびfileTime (QFileDevice::FileTime, const QTimeZone &)。

QDateTime QFileInfo::lastRead() const

ファイルが最後に読み込まれた(アクセスされた)日時を返します。

この情報が利用できないプラットフォームでは、lastModified() と同じ時刻を返します。

ファイルがシンボリックリンクである場合、この関数はシンボリックリンク自体ではなく、そのターゲットに関する情報を返します。

この関数は、QFileInfo::lastRead(const QTimeZone &) をオーバーロードしており、lastRead(QTimeZone::LocalTime) と同じ値を返します。

birthTime()、lastModified()、metadataChangeTime()、およびfileTime()も参照してください 。

[since 6.6] QDateTime QFileInfo::lastRead(const QTimeZone &tz) const

ファイルが最後に読み込まれた(アクセスされた)日時を返します。

返される時刻は、tz で指定されたタイムゾーンに基づいています。たとえば、QTimeZone::LocalTime またはQTimeZone::UTC を使用すると、それぞれローカルタイムゾーンまたは UTC での時刻を取得できます。ネイティブのファイルシステム API は通常 UTC を使用するため、QTimeZone::UTC を使用すると変換が不要になるため、多くの場合高速に処理されます。

この情報が利用できないプラットフォームでは、lastModified() と同じ時刻を返します。

ファイルがシンボリックリンクである場合、この関数はシンボリックリンク自体ではなく、そのターゲットに関する情報を返します。

この関数は Qt 6.6 で導入されました。

birthTime(const QTimeZone &)、lastModified(const QTimeZone &)、metadataChangeTime(const QTimeZone &)、およびfileTime(QFileDevice::FileTime, const QTimeZone &)も参照してください 。

bool QFileInfo::makeAbsolute()

ファイルシステムエントリのパスが相対パスの場合、このメソッドはそれを絶対パスに変換して `true` を返します。パスがすでに絶対パスの場合は、このメソッドは `false` を返します。

filePath() およびisRelative()も参照してください 。

QDateTime QFileInfo::metadataChangeTime() const

ファイルのメタデータが最後に変更された日時を、ローカル時間として返します。

メタデータの変更は、ファイルが最初に作成されたときに発生しますが、ユーザーが inode 情報を書き込んだり設定したりしたとき(たとえば、ファイルのアクセス権を変更したときなど)にも発生します。

ファイルがシンボリックリンクである場合、この関数はシンボリックリンク自体ではなく、ターゲットに関する情報を返します。

この関数は、QFileInfo::metadataChangeTime(constQTimeZone &tz) をオーバーロードしており、metadataChangeTime(QTimeZone::LocalTime) と同じ値を返します。

birthTime()、lastModified()、lastRead()、およびfileTime()も参照してください 。

[since 6.6] QDateTime QFileInfo::metadataChangeTime(const QTimeZone &tz) const

ファイルのメタデータが最後に変更された日時を返します。メタデータの変更は、ファイルが最初に作成されたときに発生しますが、ユーザーが inode 情報を書き込んだり設定したりしたとき(たとえば、ファイルのアクセス権を変更したときなど)にも発生します。

返される時刻は、tz で指定されたタイムゾーンに基づいています。たとえば、QTimeZone::LocalTime またはQTimeZone::UTC を使用すると、それぞれローカルタイムゾーンまたはUTCでの時刻を取得できます。ネイティブなファイルシステムAPIは通常UTCを使用するため、QTimeZone::UTC を使用すると変換が不要になるため、多くの場合高速に処理されます。

ファイルがシンボリックリンクである場合、この関数はシンボリックリンク自体ではなく、そのターゲットに関する情報を返します。

この関数は Qt 6.6 で導入されました。

関連項目: birthTime(const QTimeZone &)、lastModified(const QTimeZone &)、lastRead(const QTimeZone &)、およびfileTime(QFileDevice::FileTime time, const QTimeZone &)。

QString QFileInfo::owner() const

ファイルの所有者を返します。ファイルに所有者が設定されていないシステムの場合、またはエラーが発生した場合は、空の文字列が返されます。

この関数は、Unix 環境では処理に時間がかかる場合があります(ミリ秒単位)。Windows では、NTFS permissions チェックが有効になっていない限り、空の文字列が返されます。

ファイルがシンボリックリンクの場合、この関数はシンボリックリンク自体ではなく、そのターゲットに関する情報を返します。

関連項目: ownerId()、group()、groupId()。

uint QFileInfo::ownerId() const

ファイルの所有者のIDを返します。

Windows およびファイルに所有者が存在しないシステムでは、この関数は ((uint) -2) を返します。

ファイルがシンボリックリンクである場合、この関数はシンボリックリンク自体ではなく、そのターゲットに関する情報を返します。

owner()、group()、およびgroupId()も参照してください 。

QString QFileInfo::path() const

この `QFileInfo ` が参照するファイルシステムエントリのパスを、エントリ名を除いて返します。

注: この `QFileInfo ` に、ディレクトリ区切り文字 `'/'` で終わるパスが指定された場合 、エントリの名前部分は空とみなされます。この場合、この関数はパス全体を返します。

関連項目: filePath()、absolutePath()、canonicalPath()、dir()、fileName()、およびisRelative()。

bool QFileInfo::permission(QFileDevice::Permissions permissions) const

ファイルのアクセス権限を検査します。permissions 引数には、QFile::Permissions型の複数のフラグを論理和(OR)で組み合わせることで、さまざまなアクセス権限の組み合わせを検査することができます。

ファイルにアクセス権がないシステムでは、この関数は常にtrue を返します。

注: Windows では、NTFS permissions のチェックが有効になっていない場合、結果が 不正確になる可能性があります。

例:

QFileInfo fi("/tmp/archive.tar.gz");
if(fi.permission(QFile::WriteUser|QFile::ReadGroup))
    qWarning("I can change the file; my group can read the file");
if(fi.permission(QFile::WriteGroup|QFile::WriteOther))
    qWarning("The group or others can change the file");

ファイルがシンボリックリンクである場合、この関数はシンボリックリンク自体ではなく、そのターゲットに関する情報を返します。

isReadable()、isWritable()、およびisExecutable()も参照してください 。

QFileDevice::Permissions QFileInfo::permissions() const

そのファイルに対する QFile::Permissions の組み合わせをすべて OR 演算で結合した結果を返します。

注: Windows では、NTFS permissions のチェックが有効になっていない場合、結果が 不正確になる可能性があります。

ファイルがシンボリックリンクである場合、この関数はシンボリックリンク自体ではなく、そのターゲットに関する情報を返します。

シンボリックリンクが参照するパスを読み取ります。

シンボリックリンクが参照するパスを、シンボリックリンクを含むディレクトリを基準とした相対パスを解決せずに、生のパスとして返します。返される文字列が絶対パスとなるのは、シンボリックリンクが実際にそのパスを絶対パスとして参照している場合のみです。対象がシンボリックリンクでない場合は、空の文字列を返します。

この関数は Qt 6.6 で導入されました。

関連項目: symLinkTarget()、exists()、isSymLink()、isDir()、およびisFile()。

void QFileInfo::refresh()

QFileInfo が参照するファイルシステムエントリに関する情報を更新します。つまり、キャッシュされたプロパティが次に取得される際に、ファイルシステムから情報を読み込みます。

void QFileInfo::setCaching(bool enable)

enable がtrueの場合、ファイル情報のキャッシュが有効になります。enable がfalseの場合、キャッシュは無効になります。

キャッシュが有効になっている場合、QFileInfo はファイル情報が初めて必要になった際にファイルシステムからその情報を読み込みますが、それ以降は通常読み込みを行いません。

キャッシュはデフォルトで有効になっています。

refresh() およびcaching()も参照してください 。

void QFileInfo::setFile(const QString &path)

このQFileInfo が情報を提供するファイルシステムエントリのパスを、path に設定します。パスは絶対パスまたは相対パスで指定できます。

Unix では、絶対パスはディレクトリ区切り文字'/' で始まります。Windows では、絶対パスはドライブ指定で始まります(例:D:/ )。

相対パスは、ディレクトリ名または通常のファイル名で始まり、現在の作業ディレクトリを基準としたファイルシステムエントリのパスを指定します。

例:

QFileInfo info("/usr/bin/env");

QString path = info.absolutePath(); // path = /usr/bin
QString base = info.baseName(); // base = env

info.setFile("/etc/hosts");

path = info.absolutePath(); // path = /etc
base = info.baseName(); // base = hosts

関連項目: isFile()、isRelative()、QDir::setCurrent()、およびQDir::isRelativePath()。

[since 6.0] void QFileInfo::setFile(const std::filesystem::path &path)

このQFileInfo が情報を提供するファイルシステムエントリのパスを、path に設定します。

path が相対パスである場合、QFileInfo も相対パスになります。

この関数は Qt 6.0 で導入されました。

void QFileInfo::setFile(const QFileDevice &file)

QFileInfo が情報を提供するファイルを `file` に設定します。

file に相対パスが含まれている場合、QFileInfo にも相対パスが含まれます。

これはオーバーロードされた関数です。

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

void QFileInfo::setFile(const QDir &dir, const QString &path)

このQFileInfo が情報を提供するファイルシステムエントリのパスを、ディレクトリdir 内のpath に設定します。

dir が相対パスである場合、QFileInfo も相対パスになります。

path が絶対パスである場合、dir で指定されたディレクトリは無視されます。

これはオーバーロードされた関数です。

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

qint64 QFileInfo::size() const

ファイルサイズをバイト単位で返します。ファイルが存在しないか、取得できない場合は、0 が返されます。

ファイルがシンボリックリンクである場合、この関数はシンボリックリンク自体ではなく、そのリンク先に関する情報を返します。

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

[since 6.0] void QFileInfo::stat()

ファイルシステムからすべての属性を読み取ります。

これは、ワーカースレッドでファイルシステムに関する情報を収集し、それをQFileInfo インスタンスをキャッシュする形でUIに渡す場合に役立ちます。

この関数は Qt 6.0 で導入されました。

setCaching() およびrefresh()も参照してください 。

QString QFileInfo::suffix() const

ファイルの拡張子を返します。

サフィックスは、ファイル内の最後の「.」以降(その「.」自体は含まない)のすべての文字で構成されます。

例:

QFileInfo fi("/tmp/archive.tar.gz");
QString ext = fi.suffix();  // ext = "gz"

ファイルのサフィックスは、ファイルの命名規則に関係なく、すべてのプラットフォームで同様に計算されます(たとえば、Unix 上の「.bashrc」の場合、ベース名は空であり、サフィックスは「bashrc」となります)。

関連項目: fileName()、completeSuffix()、baseName()、およびcompleteBaseName()。

[noexcept] void QFileInfo::swap(QFileInfo &other)

このファイル情報をother と入れ替えます。この操作は非常に高速で、失敗することはありません。

QString QFileInfo::symLinkTarget() const

シンボリックリンクが指すファイルまたはディレクトリへの絶対パスを返します。オブジェクトがシンボリックリンクでない場合は、空の文字列を返します。

この名前は既存のファイルを表すものではなく、単なる文字列に過ぎません。

注: ` exists()` は、シンボリックリンクが既存のターゲットを指している場合は `true ` を返し、そうでない場合は `false` を返します。

関連項目: exists(),isSymLink(),isDir(),isFile().

[noexcept] QFileInfo &QFileInfo::operator=(QFileInfo &&other)

other をこのQFileInfo インスタンスに割り当てます。

注: 移動元のオブジェクト other は 、部分的に形成された状態になります。この状態では、破壊と新しい値への代入のみが有効な操作となります。

QFileInfo &QFileInfo::operator=(const QFileInfo &fileinfo)

指定されたfileinfo のコピーを作成し、それをこのQFileInfo に割り当てます。

関連する非メンバー

QFileInfoList

QList<QFileInfo> の同義語。

[noexcept] bool operator!=(const QFileInfo &lhs, const QFileInfo &rhs)

QFileInfo lhs がrhs が参照するファイルシステムエントリとは異なるものを参照している場合、true を返します。それ以外の場合は、false を返します。

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

[noexcept] bool operator==(const QFileInfo &lhs, const QFileInfo &rhs)

QFileInfo 、lhs 、およびQFileInfo 、rhs がファイルシステム上の同じエントリを指している場合は、true を返します。そうでない場合は、false を返します。

ファイルシステムエントリへの参照を含まない(存在しない、または空のパスである)2つの空のQFileInfo オブジェクトを比較した場合の結果は、未定義であることに注意してください。

警告: これは 、同じターゲットを指す 2 つの異なるシンボリックリンクを比較するものではありません。

警告: Windowsでは 、同じファイルシステムエントリを参照するロングパスとショートパスは、異なるエントリを参照しているかのように扱われます。

operator!=()も参照してください 。

マクロのドキュメント

[since 6.0] QT_IMPLICIT_QFILEINFO_CONSTRUCTION

このマクロを定義すると、QFileInfo のコンストラクタのほとんどが、明示的ではなく暗黙的になります。QFileInfo オブジェクトの生成にはコストがかかるため、特にコストの低い代替手段が存在する場合は、誤って生成してしまうことを避けるべきです。例えば:

QDirIterator it(dir);
while (it.hasNext()) {
    // Implicit conversion from QString (returned by it.next()):
    // may create unnecessary data structures and cause additional
    // accesses to the file system. Unless this macro is defined,
    // this line does not compile.

    QFileInfo fi = it.next();

    ~~~
}

その代わりに、適切なAPIを使用してください:

QDirIterator it(dir);
while (it.hasNext()) {
    // Extract the QFileInfo from the iterator directly:
    QFileInfo fi = it.nextFileInfo();

    ~~~
}

QString やQFile などを用いたオブジェクトの生成は、コピー初期化ではなく直接初期化を使用することで常に可能です:

QFileInfo fi1 = some_string; // Does not compile unless this macro is defined
QFileInfo fi2(some_string);  // OK
QFileInfo fi3{some_string};  // Possibly better, avoids the risk of the Most Vexing Parse
auto fi4 = QFileInfo(some_string); // OK

このマクロは互換性の理由から提供されています。新しいコードでの使用は推奨されません。

このマクロは Qt 6.0 で導入されました。

© 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.