qt拷贝文件到另外一个文件夹复杂代码
时间: 2023-11-18 10:06:22 浏览: 224
Qt文件或文件夹拷贝
以下是一个稍微复杂一些的示例,它演示了如何实现一个可以拷贝整个文件夹的函数:
```cpp
#include <QDir>
#include <QDebug>
void copyFolder(const QString& sourceFolderPath, const QString& destinationFolderPath)
{
// 创建目标文件夹
QDir destinationFolder(destinationFolderPath);
destinationFolder.mkdir(destinationFolderPath);
// 遍历源文件夹中的所有文件和子文件夹
QDir sourceFolder(sourceFolderPath);
foreach (QString file, sourceFolder.entryList(QDir::Files))
{
// 拷贝文件
QString sourceFilePath = sourceFolder.filePath(file);
QString destinationFilePath = QDir(destinationFolderPath).filePath(file);
if(!QFile::copy(sourceFilePath, destinationFilePath))
{
qDebug() << "文件拷贝失败!";
}
}
foreach (QString dir, sourceFolder.entryList(QDir::Dirs | QDir::NoDotAndDotDot))
{
// 递归拷贝子文件夹
QString sourceDirPath = sourceFolder.filePath(dir);
QString destinationDirPath = QDir(destinationFolderPath).filePath(dir);
copyFolder(sourceDirPath, destinationDirPath);
}
}
```
在示例中,我们首先创建目标文件夹,然后遍历源文件夹中的所有文件和子文件夹。对于每个文件,我们使用QFile::copy()函数拷贝它。对于每个子文件夹,我们递归调用copyFolder()函数。如果拷贝失败,我们就会得到一个失败的消息。
阅读全文