このページでは

FolderListModel QML Type

FolderListModel は、ファイルシステムのフォルダーの内容のモデルを提供します。詳細...

Import Statement: import Qt.labs.folderlistmodel 2.11

プロパティ

方法

詳細な説明

FolderListModel はローカルファイルシステム内のフォルダーの内容に関する情報へのアクセスを提供し、ビューやその他のデータコンポーネントにファイルのリストを公開します。

注: この型は、Qt.labs.folderlistmodel モジュールをインポートすることで利用可能になります。Qt.labs モジュールの要素は、将来のバージョンでも互換性が保たれる保証はありません。

注: FolderListModel のいくつかの機能はQFileSystemWatcher に依存しています。QFileSystemWatcher が無効になっている場合、setFolder を使用して設定されたフォルダの変更は監視されません。その結果、ディレクトリの変更時に通常発せられるシグナル(directoryUpdated や directoryChanged など)が、手動でsetFolder を再度呼び出さなければ発せられなくなります。詳細については、Qt Configure Options を参照してください。

import Qt.labs.folderlistmodel

folder プロパティは、アクセスするフォルダを指定します。フォルダー内のファイルやディレクトリーに関する情報は、モデルのインターフェースを介して提供されます。コンポーネントは、以下のロールを介して名前とパスにアクセスします:

  • fileName (string)
  • filePath (string)
  • fileUrl (url) (Qt 5.15 以降)
  • fileBaseName (string)
  • fileSuffix (string)
  • fileSize (qlonglong)
  • fileModified (date)
  • fileAccessed (date)
  • fileIsDir (bool)

さらに、isFolder() メソッドによって、ファイルエントリとフォルダエントリを区別することもできます。

フィルタリング

モデルによって公開されるファイルやディレクトリの数をフィルタリングするために、さまざまなプロパティを設定することができます。

nameFilters プロパティには、ファイルとディレクトリの名前に適用されるワイルドカード・フィルタのリストを設定することができ、フィルタに一致するものだけが公開されます。

ディレクトリは、showDirs プロパティを使用して含めることも除外することもできます。ナビゲーション・ディレクトリは、showDotAndDotDot プロパティを false に設定することによって除外することもできます。隠しファイルは、showHidden プロパティを使用して含めることも除外することもできます。

公開するファイルやディレクトリを、ユーザがアクセスできるものに限定すると便利な場合があります。この機能を有効にするには、showOnlyReadable プロパティを設定します。

使用例

以下の例では、ListView にある QML ファイルのリストを提供するために FolderListModel を使用しています:

import QtQuick
import Qt.labs.folderlistmodel

ListView {
    width: 200; height: 400

    FolderListModel {
        id: folderModel
        nameFilters: ["*.qml"]
    }

    Component {
        id: fileDelegate
        required property string fileName
        Text { text: fileName }
    }

    model: folderModel
    delegate: fileDelegate
}

パスの区切り文字

Qt では、URL のパス区切り文字として "/" が使われているのと同じように、"/" を普遍的なディレク トリ区切り文字として使っています。常に "/" をディレクトリ区切り文字として使用する場合、Qt はパスをオペレーティングシステムに合わせて変換します。

QML データモデルも参照してください

プロパティのドキュメント

caseSensitive : bool

大文字と小文字を区別するパターン・マッチを使用する。

デフォルトでは、このプロパティは true です。

count : int [read-only]

現在のフォルダー内の、フィルター条件に一致するアイテムの数を返します。

folder : url

folder プロパティは、モデルが現在提供しているフォルダの URL を保持します。

値はfile: またはqrc :URL または相対 URL でなければなりません。

デフォルト値は、FolderListModel が最初に初期化された時点でのアプリケーションの作業ディレクトリです。

nameFilters : list<string>

nameFilters プロパティには、ファイル名フィルターのリストが含まれています。フィルタには、?と*ワイルドカードを含めることができます。

以下の例では、PNGファイルとJPEGファイルにフィルタをかけています:

FolderListModel {
    nameFilters: [ "*.png", "*.jpg" ]
}

注意: ディレクトリはフィルタによって除外されません。

parentFolder : url [read-only]

現在のfolder の親のURLを返す。

rootFolder : url

このプロパティが設定されている場合、指定されたフォルダはファイルシステムのルートとして扱われるため、その中のサブフォルダのみをたどることができます。

showDirs : bool

trueの場合、ディレクトリがモデルに含まれ、そうでない場合はファイルのみが含まれる。

デフォルトでは、このプロパティはtrueです。

nameFilters はディレクトリには適用されないことに注意してください。

showDotAndDotDotも参照してください

showDirsFirst : bool

trueを指定すると、ディレクトリがモデルに含まれている場合、常に最初に表示され、次にファイルが表示されます。

デフォルトでは、このプロパティはfalseです。

showDotAndDotDot : bool

trueの場合、". "と"... "ディレクトリはモデルに含まれ、そうでない場合は除外されます。

デフォルトでは、このプロパティはfalseです。

showDirsも参照してください

showFiles : bool

trueの場合、ファイルがモデルに含まれ、そうでない場合はディレクトリのみが含まれる。

デフォルトでは、このプロパティはtrueです。

showDirsも参照してください

showHidden : bool

trueの場合、隠しファイルや隠しディレクトリはモデルに含まれ、そうでない場合は除外される。

デフォルトでは、このプロパティはfalseです。

showOnlyReadable : bool

trueの場合、読み取り可能なファイルとディレクトリのみが表示され、そうでない場合はすべてのファイルとディレクトリが表示される。

デフォルトでは、このプロパティは false です。

showDirsも参照してください

sortCaseSensitive : bool

true に設定すると、大文字と小文字が区別されます。このプロパティのデフォルトはtrue です。

sortField : enumeration

sortField プロパティは、並べ替えに使用するフィールドを含む。sortField は、以下のいずれかである:

定数説明
FolderListModel.Unsortedソートを適用しない
FolderListModel.Nameファイル名でソートする(デフォルト)
FolderListModel.Time更新時間でソート
FolderListModel.Sizeファイルサイズでソート
FolderListModel.Typeファイルタイプ/拡張子でソート

sortReversedも参照

sortReversed : bool

trueに設定すると、ソート順を逆にする。デフォルトはfalseです。

sortFieldも参照のこと

status : enumeration [read-only]

このプロパティは、フォルダの読み込み状態を保持する。以下のいずれかになります:

定数説明
FolderListModel.Nullfolder が設定されていない
FolderListModel.Readyフォルダが読み込まれた
FolderListModel.Loadingフォルダは現在ロードされています。

このステータスを使用して、更新を提供するか、または何らかの方法でステータスの変更に応答します。例えば、以下のようなことが可能です:

  • 状態変更をトリガーする:
    State { name: 'loaded'; when: folderModel.status == FolderListModel.Ready }
  • onStatusChanged シグナルハンドラを実装する:
    FolderListModel {
        id: folderModel
        onStatusChanged: if (folderModel.status == FolderListModel.Ready) console.log('Loaded')
    }
  • ステータス値にバインドする:
    Text { text: folderModel.status == FolderListModel.Ready ? 'Loaded' : 'Not loaded' }

メソッドの説明

var get(int index, string property)

与えられたindex のフォルダproperty を返す。以下のプロパティが利用可能です:

  • fileName (string)
  • filePath (string)
  • fileUrl (url) (Qt 5.15 以降)
  • fileBaseName (string)
  • fileSuffix (string)
  • fileSize (qlonglong)
  • fileModified (date)
  • fileAccessed (date)
  • fileIsDir (bool)

int indexOf(url file)

モデルにfile URL が含まれていればそのインデックスを、含まれていなければ -1 を返します。

bool isFolder(int index)

エントリindex がフォルダの場合は true を返し、そうでない場合は false を返します。

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