Qt 循环遍历 文件夹及其子文件夹 删除指定文件后缀
时间: 2023-08-09 14:08:55 浏览: 216
可以使用 QDirIterator 类来遍历文件夹及其子文件夹,然后使用 QFile 类来删除指定文件后缀的文件。
以下是一个示例代码:
```cpp
#include <QDirIterator>
#include <QFile>
void removeFilesWithSuffix(const QString& path, const QString& suffix)
{
QDirIterator it(path, QDirIterator::Subdirectories);
while (it.hasNext()) {
QString file = it.next();
if (QFileInfo(file).suffix() == suffix) {
QFile::remove(file);
}
}
}
```
在上述代码中,removeFilesWithSuffix 函数接受两个参数:文件夹路径和要删除的文件后缀。它使用 QDirIterator 遍历文件夹及其子文件夹,并使用 QFileInfo 获取文件后缀,如果后缀与指定后缀相同,则使用 QFile 删除该文件。
注意,该代码只能删除当前用户有删除权限的文件。如果没有权限,会删除失败并返回错误信息。此外,删除操作是不可逆的,请谨慎使用。
相关问题
qt 遍历文件夹 查找指定文件
Qt是一个强大的跨平台应用程序开发框架,特别是在C++中非常流行。如果你想要在Qt中遍历文件夹并查找指定文件,你可以使用`QDir`类和它的迭代器功能。下面是一个简单的示例:
```cpp
#include <QDir>
#include <QDebug>
void searchDirectory(const QString& directoryPath, const QString& fileName) {
QDir dir(directoryPath);
if (!dir.exists()) {
qDebug() << "目录不存在.";
return;
}
QStringList files = dir.entryList(QDir::Files | QDir::NoDotAndDotDot); // 获取目录下所有非隐藏文件
foreach (QString file, files) {
if (file == fileName) {
qDebug() << "找到文件: " << directoryPath + "/" + file;
// 这里可以添加进一步操作,比如读取文件内容等
break; // 找到后直接跳出循环
}
}
}
// 调用函数
searchDirectory("路径/去/搜索", "yourFileName.txt");
```
在这个例子中,`searchDirectory`函数接收一个目录路径和一个文件名作为参数。它首先检查目录是否存在,然后获取该目录下的所有文件列表。如果找到匹配的文件,它会打印出文件的完整路径。
QT c++ 遍历文件夹下面的每个文件的信息
在Qt C++中,您可以使用QDir类和QFileInfo类来遍历文件夹下的每个文件。以下是一个示例代码:
```cpp
#include <QDir>
#include <QFileInfo>
#include <QDebug>
QString folderPath = "/path/to/folder";
QDir folderDir(folderPath);
// 获取文件夹下的文件列表
QFileInfoList fileList = folderDir.entryInfoList(QDir::Files);
// 遍历文件列表
for (int i = 0; i < fileList.size(); ++i) {
QFileInfo fileInfo = fileList.at(i);
QString fileName = fileInfo.fileName();
QString filePath = fileInfo.absoluteFilePath();
qint64 fileSize = fileInfo.size();
QString fileExtension = fileInfo.suffix();
// 输出文件信息
qDebug() << "File name:" << fileName << ", File path:" << filePath << ", Size:" << fileSize << "bytes, Extension:" << fileExtension;
}
```
该代码将遍历指定文件夹下的每个文件,并输出每个文件的名称、路径、大小和扩展名。您可以根据需要修改代码以自定义输出内容。
阅读全文