遍历指定文件夹的目录?Qt 和 c++
Traversing a directory for specified folders? Qt & c++
我得到了一个包含以下结构的目录。
Name-
-Year1
-Month1
-Day1
-file1
-..
-...
-Year2
-Month1
-...
-...
现在我有 2 个日期 2009-01-02 和 2010-02-03。
我想问是否有人知道如何列出给定时间内文件夹中的所有文件,而无需构建巨大的 if-else 结构。如果可能的话,除了Qt之外没有任何其他框架。
任何帮助将不胜感激!
看看 QDir::entryList(),它将列出文件夹中的所有文件。您可以像这样构造目录路径:
QString path = QDir::currentPath() + "/" +
QString::fromNumber(year) + "/" +
QString::fromNumber(month) + "/" +
QString::fromNumber(day);
然后做
QDir dir(path);
QStringList files = dir.entryList();
您可以对其他日期执行相同的操作,然后合并两个QStringLists。
您可以创建一个迭代器并扫描目录树,如下所示:
QDir dir("YOUR_PATH_BASE"); //"Name"
if (dir.exists())
{
foreach(QFileInfo info, dir.entryInfoList(QDir::NoDotAndDotDot | QDir::Files | QDir::AllDirs ))
{
if (info.isFile())
{
//do something
}
if (info.isDir())
{
//scan again
}
}
}
您可以使用 QDir 类来执行此操作。在那里,您可以递归遍历所有子文件夹。为此,您可以使用 entryInfoList 方法。它返回目录中所有文件和目录的 QFileInfo 对象列表。对于此列表中的每个条目,您可以检查它是目录还是文件。如果它是一个目录,那么你必须更深入。
希望这对您有所帮助。
相关文章:
- Qt VTK交互风格的信号到小部件
- QT在错误的班级中寻找空位
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 如何在Qt窗口小部件中使用QStringView(或QStringRef)
- 如何在Qt C++中更改光标
- 如何在MS Visual Studio 2019中运行QT UI
- QT通过C++添加映射QML项目
- libssh 的函数在构建 libssh 时无法在 Qt 和 cmake 错误中找到
- 如何将点击的信号和插槽添加到qt中的自定义按钮中
- Qt C++静态thread_local QNetworkAccessManager是线程应用程序的好选择吗
- 使用Qt C++计算类似Git的SHA1哈希
- Qt focusObjectChanged example?
- 如何在cpp文件之间切换窗口?在Qt中
- Qt和C++:将QLineEdit添加到QTabWidget中
- 从数据库实时显示QT c++中的数据
- Qt Quick-如何仅从c++代码与qml属性交互
- 无法使用Qt Creator在Windows中构建yaml-cpp
- 如何在Qt中取消捕获字符串
- Qt SQLite没有查询或参数计数不匹配
- Qt SQlite无法创建表