admin 管理员组文章数量: 1088108
这里其实各个平台都通用,但个人感觉,如果是linux,直接用shell命名。更加方便。
这里逻辑是这样的。
递归函数,直接先找到最里面,把文件拷贝。然后逐步出来即可!
下面是代码:
generatefile.h
#ifndef GENERATEFILE_H
#define GENERATEFILE_H
#include <QObject>
class GenerateFile : public QObject
{
Q_OBJECT
public:
explicit GenerateFile(QObject *parent = 0);
static bool cpDir(const QString &srcPath, const QString &dstPath);
......
......
signals:
public slots:
};
#endif // GENERATEFILE_H
generatefile.cpp
#include "generatefile.h"
#include <QDir>
#include <QSettings>
#include <QDebug>
GenerateFile::GenerateFile(QObject *parent) : QObject(parent)
{
}
bool GenerateFile::cpDir(const QString &srcPath, const QString &dstPath)
{
QDir parentDstDir(QFileInfo(dstPath).path());
if(!parentDstDir.mkdir(QFileInfo(dstPath).fileName())){
return false;
}
QDir srcDir(srcPath);
foreach(const QFileInfo &info, srcDir.entryInfoList(QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot)){
QString srcItemPath = srcPath + "/" + info.fileName();
QString dstItemPath = dstPath + "/" + info.fileName();
if(info.isDir()){
if(!cpDir(srcItemPath, dstItemPath)){
return false;
}
}
else if(info.isFile()){
if(!QFile::copy(srcItemPath, dstItemPath)){
return false;
}
}
else{
qDebug() << "Unhandled item" << info.filePath() << "in cpDir";
}
}
return true;
}
......
......
版权声明:本文标题:Qt笔记-windows下拷贝文件夹中所有文件 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/b/1753575374a2908073.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论