qt复制文件夹的全部文件
时间: 2024-05-07 16:22:16 浏览: 44
你可以使用Qt的QFile和QDir类来实现复制整个文件夹的所有文件。以下是一个示例代码:
```
#include <QFile>
#include <QDir>
bool copyRecursively(const QString &srcFilePath, const QString &tgtFilePath)
{
QFileInfo srcFileInfo(srcFilePath);
if (srcFileInfo.isDir()) {
QDir targetDir(tgtFilePath);
if (!targetDir.mkpath(targetDir.absolutePath())) {
return false;
}
QDir sourceDir(srcFilePath);
QStringList fileNames = sourceDir.entryList(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot | QDir::Hidden | QDir::System);
foreach (const QString &fileName, fileNames) {
const QString newSrcFilePath = srcFilePath + QLatin1Char('/') + fileName;
const QString newTgtFilePath = tgtFilePath + QLatin1Char('/') + fileName;
if (!copyRecursively(newSrcFilePath, newTgtFilePath)) {
return false;
}
}
} else {
if (!QFile::copy(srcFilePath, tgtFilePath)) {
return false;
}
}
return true;
}
```
这个函数会递归复制整个文件夹,包括子文件夹和文件。调用方式如下:
```
copyRecursively("/path/to/source/folder", "/path/to/target/folder");
```
请确保你有足够的权限来读取和写入目标文件夹。
阅读全文