当前位置: 首页 > news >正文

QT文件和文件夹拷贝操作

1.拷贝文件夹

//(源文件目录路劲,目的文件目录,文件存在是否覆盖)
bool copyDirectory(const QString& srcPath, const QString& dstPath, bool coverFileIfExist)
{
    QDir srcDir(srcPath);
    QDir dstDir(dstPath);
    if (!dstDir.exists()) { //目的文件目录不存在则创建文件目录
        if (!dstDir.mkdir(dstDir.absolutePath()))
            return false;
    }
    QFileInfoList fileInfoList = srcDir.entryInfoList();
    foreach(QFileInfo fileInfo, fileInfoList) {
        if (fileInfo.fileName() == "." || fileInfo.fileName() == "..")
            continue;

        if (fileInfo.isDir()) {    // 当为目录时,递归的进行copy 
            if (!copyDirectory(fileInfo.filePath(),dstDir.filePath(fileInfo.fileName()),coverFileIfExist))
                return false;
        }
        else {            //当允许覆盖操作时,将旧文件进行删除操作 
            if (coverFileIfExist && dstDir.exists(fileInfo.fileName())) {
                dstDir.remove(fileInfo.fileName());
            }
            /// 进行文件copy
            if (!QFile::copy(fileInfo.filePath(), dstDir.filePath(fileInfo.fileName()))) {
                return false;
            }
        }
    }
    return true;
}

2.拷贝文件

//(源文件文件路径,目的文件路径,文件存在是否覆盖)
bool copyFile(QString srcPath, QString dstPath, bool coverFileIfExist)
{
    srcPath.replace("\\", "/");
    dstPath.replace("\\", "/");
    if (srcPath == dstPath) {
        return true;
    }

    if (!QFile::exists(srcPath)) {  //源文件不存在
        return false;
    }

    if (QFile::exists(dstPath)) {
        if (coverFileIfExist) {
            QFile::remove(dstPath);
        }
    }

    if (!QFile::copy(srcPath, dstPath)){
        return false;
    }
    return true;
}
 

http://www.dtcms.com/a/147474.html

相关文章:

  • NetApp ONTAP 9 故障磁盘更换操作指南
  • 《零基础入门学习Python》
  • OpenGL shader开发实战学习笔记:第十二章 深入光照
  • Linux指令合集
  • C++ STL:从零开始模拟实现 list 容器
  • ACWing——算法基础课
  • 棉花糖实验新解
  • Linux-scp命令
  • 3DMAX 常用渲染器对比及渲染 101 云平台优势
  • (EtherNet/IP 转 EtherNet/IP)EtherCAT/Ethernet/IP/Profinet/ModbusTCP协议互转工业串口网关
  • 存储器综合:内存条
  • 【NLP 69、KG - BERT】
  • linux sysfs的使用
  • μC/OS 版本演进过程 | uC/OS-II 和 uC/OS-III 有什么区别?
  • 运维:概念、模式与硬件基础
  • 使用Python可视化莫比乌斯带
  • 【leetcode题解】滑动窗口
  • STM32 栈地址起始位置不正确
  • V5验证官网滑块验证码WSS协议逆向算法分析
  • 【知识】性能优化和内存优化的主要方向
  • 多进程队列
  • 前端笔记-Vue3(上)
  • http 文件下载和上传服务
  • 经典文献阅读之--SSR:(端到端的自动驾驶真的需要感知任务吗?)
  • ubuntu18.04启动不了修复
  • PythonWeb
  • 【AI论文】生成,但验证:通过回顾性重采样减少视觉语言模型中的幻觉
  • 数字ic后端设计从入门到精通2(含fusion compiler, tcl教学)
  • Origin绘图——双Y轴柱状图升级双向柱状图
  • 【C++游戏引擎开发】第18篇:视锥体裁剪与光源剔除