qt获取文件夹及子文件夹下指定格式文件
时间: 2023-08-03 07:07:36 浏览: 167
pyqt5实现文件批量操作
您可以使用Qt的QDir类和QFileInfo类来获取文件夹及其子文件夹下指定格式的文件。以下是一个示例代码:
```cpp
QStringList getFiles(const QString& path, const QStringList& filters)
{
QDir directory(path);
QStringList files;
// 获取该目录下所有文件
QFileInfoList fileList = directory.entryInfoList(QDir::Files);
// 遍历该目录下所有文件
for (int i = 0; i < fileList.size(); i++)
{
QFileInfo fileInfo = fileList.at(i);
// 如果文件格式符合筛选条件,则加入文件列表
if (filters.contains(fileInfo.suffix()))
{
files.append(fileInfo.absoluteFilePath());
}
}
// 获取该目录下所有子目录
QStringList subDirs = directory.entryList(QDir::Dirs | QDir::NoDotAndDotDot);
// 遍历所有子目录,并递归获取子目录下的文件
for (int i = 0; i < subDirs.size(); i++)
{
QString subDir = subDirs.at(i);
QString subDirPath = path + QDir::separator() + subDir;
QStringList subDirFiles = getFiles(subDirPath, filters);
files.append(subDirFiles);
}
return files;
}
```
您可以调用该函数来获取指定文件夹及其子文件夹下指定格式的文件,例如:
```cpp
QStringList files = getFiles("/path/to/folder", QStringList() << "txt" << "xml");
```
该代码将返回所有以".txt"和".xml"为后缀名的文件路径列表。
阅读全文