我有以下代码,我想检查是否存在任何子目录。我希望canFetchMore()fn返回true(因为根目录包含子目录)。但它返回false。在调用canFetchMore()fn。
之前是否还有其他fn要调用QFileSystemModel model;
model.setFilter(QDir::AllDirs);
model.setRootPath("/");
QModelIndex index = model.index(model.rootPath());
qDebug()<<index.child(0,0).isValid()<<model.canFetchMore(index)<<index;
我尝试过使用hasChildren()fn并且无论文件夹是否包含子目录,它都会返回true。
答案 0 :(得分:1)
很奇怪,没有这方面的文件。 方法
model.setRootPath("/");
自动致电model.fetchMore(index);
。这意味着此时已找到所有子目录。这就是你的调用model.canFetchMore(index)
返回false的原因,因为没有更多的子目录可以获取。
QDir mytopdir("/path/to/dir");
if(mytopdir.exists()){
QFileInfoList list = mytopdir.entryInfoList();
foreach(QFileInfo fileInfo, list){
if(fileInfo.isDir()){
//FOUND IT!!
}
}
}