如何在 Qml 中列出文件夹内容?

如何在 Qml 中列出文件夹内容?

我正在尝试重写 notes-app 的一部分,以便将笔记直接存储在文件系统中。但我希望能够列出文件夹中的文件,不是为了显示它们,而是为了在 javascript 函数中处理它们。

答案1

下面是一个使用以下方法显示文件夹内容的简单示例:文件夹列表模型

import QtQuick 2.0
import Qt.labs.folderlistmodel 1.0
import Ubuntu.Components 0.1
import Ubuntu.Components.ListItems 0.1 as ListItem

MainView {
    id: root
    width: units.gu(50)
    height: units.gu(75)

    Page {
        id: home
        visible: true
        title: "Files"

        FolderListModel {
            id: folderModel
            folder: "/"
            nameFilters: [ "*" ]
        }

        ListView {
            anchors.fill: parent
            model: folderModel
            delegate: ListItem.Standard {
                text: model.fileName
            }
        }
    }
}

看起来像:

文件夹视图

现在,你当然想利用这些信息做一些事情。不幸的是,你不能像你想的那样简单地迭代模型,因为在 Beru 开发者博客上的这篇文章中进行了解释。他有帮助地展示了如何使用该Repeater组件:

    Repeater {
        model: folderModel

        Component {
            Item {
                Component.onCompleted: {
                    // Do something interesting here...
                    console.log(fileName)
                }
            }
        }
    } 

相关内容