Qt 实现的拷贝文件夹的函数
- #include <QDir>
- #include <QFileInfoList>
- /**
- qCopyDirectory -- 拷贝目录
- fromDir : 源目录
- toDir : 目标目录
- bCoverIfFileExists : ture:同名时覆盖 false:同名时返回false,终止拷贝
- 返回: ture拷贝成功 false:拷贝未完成
- */
- bool qCopyDirectory(const QDir& fromDir, const QDir& toDir, bool bCoverIfFileExists)
- {
- QDir formDir_ = fromDir;
- QDir toDir_ = toDir;
- if(!toDir_.exists())
- {
- if(!toDir_.mkdir(toDir.absolutePath()))
- return false;
- }
- QFileInfoList fileInfoList = formDir_.entryInfoList();
- foreach(QFileInfo fileInfo, fileInfoList)
- {
- if(fileInfo.fileName() == "." || fileInfo.fileName() == "..")
- continue;
- //拷贝子目录
- if(fileInfo.isDir())
- {
- //递归调用拷贝
- if(!qCopyDirectory(fileInfo.filePath(), toDir_.filePath(fileInfo.fileName())))
- return false;
- }
- //拷贝子文件
- else
- {
- if(bCoverIfFileExists && toDir_.exists(fileInfo.fileName()))
- {
- toDir_.remove(fileInfo.fileName());
- }
- if(!QFile::copy(fileInfo.filePath(), toDir_.filePath(fileInfo.fileName())))
- {
- return false;
- }
- }
- }
- return true;
- }
复制代码
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
还真没有想过用qt作这个功能阿, 一般就做下界面。功能全是不同的平台上自己写。