注意:使用前需要導入Qt.labs.folderlistmodel模塊。
Rectangle {
height: 400
width: 400
anchors.centerIn: parent
FolderListModel
{
id: foldermodel
folder: "./PageObc" //需要解析的文件夾
showDirs: true //是否顯示文件夾。默認爲真
showDotAndDotDot: false //如果爲真,"." and ".."目錄被包含在model中,否則被排除。默認爲假
nameFilters: ["*.qml","*.png"] //篩選過濾作用,注意的是目錄不會被過濾排除
sortField: FolderListModel.Type //設置排序模式,是一個枚舉值,下面進行講解
showOnlyReadable: true
sortReversed: false //如果爲真,逆轉排序順序。默認爲假
}
Component {
id: fileDelegate
Text {
text: index + "/" + foldermodel.count + " " + fileName //count 過濾後的文件個數
color: foldermodel.isFolder(index)? "red" : "blue" //判斷是否文件夾
font.pixelSize: 20
}
}
ListView{
width: 200
height: 200
anchors.centerIn: parent
model: foldermodel
delegate: fileDelegate
}
}
補充說明:
sortField :enumeration
sortField包含用於排序的域,它可能是下面的一個值:
Unsorted - 不排序
Name - 按文件名排序
LastModified- 按修改時間排序
Size - 按文件尺寸排序
Type - 按文件類型排序(擴展名)
folder屬性指明訪問的文件夾。文件夾中文件和目錄的信息經由model接口提供。該model組件經下面的標識訪問名字和路徑:
fileName
filePath
fileURL(since Qt 5.2)
fileBaseName
fileSuffix
fileSize
fileModified
fileAccessed
fileIsDir
另外,附加的方法isFolder(),能用來區分入口是文件還是目錄