You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从文件路径和文件名获取QFileSystemModel中的QModelIndex

QFileSystemModel中index函数column参数的作用详解

嘿,我来给你把这个参数的作用讲明白~

QFileSystemModel本质是个多列数据模型,默认会展示文件的好几个属性,而index(filepath, column)里的column参数,就是用来指定你要获取目标文件/路径对应模型中哪一列的QModelIndex。

默认列对应的属性

默认情况下,QFileSystemModel的列和对应属性是这样的:

  • 列0:文件名/文件夹名(这是最常用的列,和文件的核心操作绑定)
  • 列1:文件大小
  • 列2:文件类型(比如“文件夹”“文本文件”“PNG图片”这类描述)
  • 列3:最后修改时间

实际使用示例

比如你想获取某个文件夹的索引,同时分别拿到它的名称和大小数据,代码可以这么写:

QFileSystemModel *fileModel = new QFileSystemModel;
fileModel->setRootPath(QDir::currentPath());

// 获取当前目录下"test_folder"在文件名列的索引
QModelIndex nameIdx = fileModel->index("./test_folder", 0);
// 获取同一个文件夹在大小列的索引
QModelIndex sizeIdx = fileModel->index("./test_folder", 1);

// 通过索引取出对应列的数据
qDebug() << "文件夹名称:" << fileModel->data(nameIdx).toString();
qDebug() << "文件夹大小:" << fileModel->data(sizeIdx).toString();

额外小提示

如果你只是要做文件的核心操作(比如判断是否是文件夹、获取父节点、展开目录等),用column=0就足够了——因为文件的核心元数据(路径、目录状态等)都是和列0的索引绑定的,其他列更多是用来展示辅助信息的。

内容的提问来源于stack exchange,提问作者maxwell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:36:42