このページでは

QStorageInfo Class

現在マウントされているストレージおよびドライブに関する情報を表示します。詳細...

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

QStorageInfo の比較

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

パブリック関数

QStorageInfo()
QStorageInfo(const QDir &dir)
QStorageInfo(const QString &path)
QStorageInfo(const QStorageInfo &other)
(since 6.10) QStorageInfo(QStorageInfo &&other)
~QStorageInfo()
int blockSize() const
qint64 bytesAvailable() const
qint64 bytesFree() const
qint64 bytesTotal() const
QByteArray device() const
QString displayName() const
QByteArray fileSystemType() const
bool isReadOnly() const
bool isReady() const
bool isRoot() const
bool isValid() const
QString name() const
void refresh()
QString rootPath() const
void setPath(const QString &path)
QByteArray subvolume() const
void swap(QStorageInfo &other)
QStorageInfo &operator=(QStorageInfo &&other)
QStorageInfo &operator=(const QStorageInfo &other)

静的パブリックメンバー

QList<QStorageInfo> mountedVolumes()
QStorageInfo root()
bool operator!=(const QStorageInfo &lhs, const QStorageInfo &rhs)
bool operator==(const QStorageInfo &lhs, const QStorageInfo &rhs)

詳細説明

ボリュームの空き容量、マウントポイント、ラベル、およびファイルシステム名に関する情報を取得できます。

QStorageInfoのインスタンスは、コンストラクタのパラメータとしてボリュームのマウントポイントへのパスを渡すか、setPath()メソッドを使用して設定することで作成できます。静的メソッドmountedVolumes()を使用すると、マウントされているすべてのファイルシステムのリストを取得できます。

QStorageInfoは取得した情報を常にキャッシュしますが、refresh()を呼び出すことでキャッシュを無効化できます。

次の例では、システムのルートボリュームに関する最も一般的な情報を取得し、その情報を出力しています。

QStorageInfo storage=QStorageInfo::root();

qDebug() << storage.rootPath();
if(storage.isReadOnly())
    qDebug() << "isReadOnly:" << storage.isReadOnly();

qDebug() << "name:" << storage.name();
qDebug() << "fileSystemType:" << storage.fileSystemType();
qDebug() << "size:" << storage.bytesTotal()/1000/1000 << "MB";
qDebug() << "availableSize:" << storage.bytesAvailable()/1000/1000 << "MB";

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

QStorageInfo::QStorageInfo()

空の QStorageInfo オブジェクトを作成します。

デフォルトコンストラクタで作成されたオブジェクトは無効となるため、使用することはできません。

setPath()、isReady()、およびisValid()も参照してください 。

[explicit] QStorageInfo::QStorageInfo(const QDir &dir)

dir フォルダを含むボリュームに関する情報を提供する、新しいQStorageInfoオブジェクトを作成します。

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

path にマウントされているボリュームに関する情報を提供する、新しい QStorageInfo オブジェクトを作成します。

ディレクトリまたはファイルを引数として渡すと、QStorageInfo オブジェクトは、そのディレクトリまたはファイルが配置されているボリュームを参照します。isValid() メソッドを使用して、作成されたオブジェクトが正しいかどうかを確認できます。

次の例は、アプリケーションが配置されているボリュームを取得する方法を示しています。ボリュームが準備済みで有効であることを常に確認することをお勧めします。

QStorageInfo storage(qApp->applicationDirPath());
if (storage.isValid() && storage.isReady()) {
    // ...
}

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

QStorageInfo::QStorageInfo(const QStorageInfo &other)

other のQStorageInfoオブジェクトのコピーとなる、新しいQStorageInfoオブジェクトを作成します。

[constexpr noexcept default, since 6.10] QStorageInfo::QStorageInfo(QStorageInfo &&other)

other から新しい QStorageInfo をムーブコンストラクタで生成します。

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

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

[noexcept] QStorageInfo::~QStorageInfo()

QStorageInfo オブジェクトを破棄し、そのリソースを解放します。

int QStorageInfo::blockSize() const

このファイルシステムに最適な転送ブロックサイズを返します。

QStorageInfo がサイズを特定できなかった場合、またはQStorageInfo オブジェクトが無効な場合は、-1を返します。

qint64 QStorageInfo::bytesAvailable() const

現在のユーザーが利用可能なサイズ(バイト単位)を返します。ユーザーがrootユーザーまたはシステム管理者の場合は、利用可能な合計サイズを返します。

このサイズは、bytesFree() 関数が返す空き容量以下となる場合があります。

QStorageInfo オブジェクトが無効な場合は-1を返します。

bytesTotal() およびbytesFree()も参照してください 。

qint64 QStorageInfo::bytesFree() const

ボリューム内の空きバイト数を返します。ファイルシステムにクォータが設定されている場合、この値は `bytesAvailable()` が返す値よりも大きくなる可能性があることに注意してください。

QStorageInfo オブジェクトが無効な場合は、-1を返します。

bytesTotal() およびbytesAvailable()も参照してください 。

qint64 QStorageInfo::bytesTotal() const

合計のボリュームサイズをバイト単位で返します。

QStorageInfo オブジェクトが無効な場合は-1を返します。

bytesFree() およびbytesAvailable()も参照してください 。

QByteArray QStorageInfo::device() const

このボリュームのデバイスを返します。

たとえば、Unix ファイルシステム(macOS を含む)では、ローカルストレージの場合、/dev/sda0 のような devpath が返されます。Windows では、ローカルストレージの場合、\\\\?\\ で始まる UNC パス(つまり、ボリューム GUID)が返されます。

rootPath() およびsubvolume()も参照してください 。

QString QStorageInfo::displayName() const

利用可能な場合はボリューム名を、利用できない場合はルートパスを返します。

QByteArray QStorageInfo::fileSystemType() const

ファイルシステムの型名を返します。

これはプラットフォーム依存の関数であり、ファイルシステムの名称はオペレーティングシステムによって異なる場合があります。たとえば、Windows のファイルシステムでは `NTFS` という名前が付けられている場合があり、Linux では `ntfs-3g ` または `fuseblk` という名前が付けられている場合があります。

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

bool QStorageInfo::isReadOnly() const

現在のファイルシステムが書き込み保護されている場合は true を返し、そうでない場合は false を返します。

bool QStorageInfo::isReady() const

現在のファイルシステムが使用可能な状態であれば true を返し、そうでない場合は false を返します。たとえば、CD ボリュームが挿入されていない場合は false が返されます。

なお、fileSystemType()、name()、bytesTotal()、bytesFree()、およびbytesAvailable() は、ボリュームが使用可能になるまで無効なデータを返すことに注意してください。

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

bool QStorageInfo::isRoot() const

このQStorageInfo がシステムのルートボリュームを表している場合はtrueを返し、そうでない場合はfalseを返します。

Unix ファイルシステムでは、ルートボリュームは `/` にマウントされたボリュームです。Windows では、ルートボリュームは OS がインストールされているボリュームです。

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

bool QStorageInfo::isValid() const

rootPath で指定されたQStorageInfo が存在し、正しくマウントされている場合、true を返します。

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

[static] QList<QStorageInfo> QStorageInfo::mountedVolumes()

現在マウントされているファイルシステムのリストに対応する、QStorageInfo オブジェクトのリストを返します。

Windows では、これは「マイ コンピュータ」フォルダに表示されるドライブを返します。Unix 系オペレーティングシステムでは、マウントされているすべてのファイルシステム(疑似ファイルシステムを除く)のリストを返します。

デフォルトでは、現在マウントされているすべてのファイルシステムを返します。

この例では、読み取り専用ファイルシステムを除外して、利用可能なすべてのファイルシステムを取得する方法を示しています。

foreach (const QStorageInfo &storage, QStorageInfo::mountedVolumes()) {
    if (storage.isValid() && storage.isReady()) {
        if (!storage.isReadOnly()) {
            // ...
        }
    }
}

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

QString QStorageInfo::name() const

ファイルシステムの読みやすい名前を返します。通常、label と呼ばれます。

すべてのファイルシステムがこの機能をサポートしているわけではありません。その場合、このメソッドが返す値は空になる可能性があります。ファイルシステムがラベルをサポートしていない場合、またはラベルが設定されていない場合は、空の文字列が返されます。

Linux では、ボリュームのラベルを取得するには、システムに `udev ` が存在している必要があります。

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

void QStorageInfo::refresh()

QStorageInfo の内部キャッシュをリセットします。

QStorageInfo パフォーマンスを向上させるため、ストレージに関する情報をキャッシュします。QStorageInfo は、オブジェクトの構築時やsetPath()メソッドの呼び出し時に情報を取得します。ストレージ情報を更新するには、この関数を呼び出してキャッシュを手動でリセットする必要があります。

[static] QStorageInfo QStorageInfo::root()

システムのルートボリュームを表すQStorageInfo オブジェクトを返します。

Unix システムでは、この呼び出しはルート('/')ボリュームを返し、Windows ではオペレーティングシステムがインストールされているボリュームを返します。

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

QString QStorageInfo::rootPath() const

この `QStorageInfo ` オブジェクトが表すファイルシステムのマウントポイントを返します。

Windows では、ボリュームがディレクトリにマウントされていない場合、ボリューム文字を返します。

rootPath() が返す値はボリュームの実際のマウントポイントであり、コンストラクタやsetPath() メソッドに渡された値とは一致しない場合があることに注意してください。たとえば、システムにルートボリュームしかなく、setPath() に '/directory' を渡した場合、このメソッドは '/' を返します。

setPath() およびdevice()も参照してください 。

void QStorageInfo::setPath(const QString &path)

このQStorageInfo オブジェクトを、path が配置されているマウントされたファイルシステムに設定します。

path は、ファイルシステムのルートパス、ディレクトリ、またはそのファイルシステム内のファイルのいずれかです。

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

QByteArray QStorageInfo::subvolume() const

このボリュームのサブボリューム名を返します。

ファイルシステムの種類によっては、1つのデバイス内に複数のサブボリュームが存在し、それらが異なるパスにマウントされる場合があります(例:Unixの「bind」マウントや、Btrfsファイルシステムのサブボリュームなど)。サブボリュームが検出された場合、この関数はその名前を返します。 サブボリューム名の形式は、ファイルシステムの種類ごとに異なります。

このボリュームが、より大きなファイルシステムのサブボリュームからマウントされていない場合、またはサブボリュームが検出できなかった場合、この関数は空のバイト配列を返します。

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

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

このボリューム情報をother と交換します。この操作は非常に高速で、失敗することはありません。

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

other をこのQStorageInfo インスタンスにムーブ代入します。

移動元のオブジェクトother は、有効ではあるが未指定の状態に置かれます。

QStorageInfo &QStorageInfo::operator=(const QStorageInfo &other)

QStorageInfo オブジェクトother のコピーを作成し、それをこのQStorageInfo オブジェクトに代入します。

関連する非メンバー

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

QStorageInfo オブジェクトlhs が、QStorageInfo オブジェクトrhs とは異なるドライブまたはボリュームを指している場合は、true を返します。それ以外の場合は、false を返します。

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

QStorageInfo オブジェクトlhs が、QStorageInfo オブジェクトrhs と同じドライブまたはボリュームを指している場合は、true を返します。そうでない場合は、false を返します。

なお、2つの無効なQStorageInfo オブジェクトを比較した結果は、常に正の値になります。

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