QDir::entryInfoList意外行为
QDir::entryInfoList unexpected behavior
代码很简单:
void DirManagement::listFiles(QDir dir)
{
QFileInfoList list = dir.entryInfoList(QDir::NoFilter, QDir::NoSort);
for (int i = 0; i < list.size(); ++i)
{
QFileInfo fInfo = list.at(i);
QString fPath = fInfo.absoluteFilePath();
qDebug() << "# " << i << fPath; }
}
问题是,如果我的目录路径是:"/home/adasi/Desktop/GCUFolder"结果如下:
# 0 "/home/Alya/Desktop/MCUFolder"
# 1 "/home/Alya/Desktop"
# 2 "/home/Alya/Desktop/MCUFolder/32Mon Oct 24 2011"
# 3 "/home/Alya/Desktop/MCUFolder/32Sun Oct 23 2011"
然而,我所期望的只是给定目录下的内容:
# 0 "/home/Alya/Desktop/MCUFolder/32Mon Oct 24 2011"
# 1 "/home/Alya/Desktop/MCUFolder/32Sun Oct 23 2011"
我尝试了大多数qt过滤器。没有工作。
只是为了添加更多信息它像Mat所说的那样工作,指定你想要列出的内容,像这样:
myQdirObject.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot, QDir::NoSort);
使用QDir::NoDotAndDotDot
过滤器,这将从搜索中删除目录本身及其父目录。
entryInfoList
应与QDir::NoDot | QDir::NoDotDot
过滤器一起调用:
QFileInfoList list = dir.entryInfoList(QDir::NoDot | QDir::NoDotDot, QDir::NoSort);
查看相应的Qt文档以获取更多过滤器
相关文章:
- 'operator='已弃用:改用 QDir::setPath()
- 为什么 QDir::exists() 在 docker 容器中不起作用?
- Qt 应用程序具有意外的 QDir::currentPath
- C++ Qt5 QDir重命名返回错误
- 在 Windows QDir::mkpath 和 QFile::rename 上报告成功,尽管失败了
- 如何在C++中调用 QDir 库
- 由 startproc 运行的程序的 QDir::homePath() 的非预期结果
- QDir mkpath 返回 true,但未创建目录
- QDIR入口列表可以使用文件夹快捷方式透明地工作
- QT QDir::entryList 在发布中不起作用
- QDir::remove() 在特定插槽中调用时总是导致崩溃
- 在QDir::entryInfoList中使用多个条件进行排序
- 为什么QDir::rmdir不是静态的
- 使用 QDir 的过滤器列出子目录中的文件
- 将QDir分解为QStringList的最佳方法是什么?
- 诊断 QDir::rmdir 故障
- QDir目录之前应为不合格的id
- 如何从QDir和相对文件路径创建绝对文件路径
- 我正在使用QDir().isReadable来检查驱动器是否可读。在Qt Creator中它运行良好,但是当我运行exe时,它一直给我错误
- QDir::entryInfoList意外行为