zoukankan      html  css  js  c++  java
  • 【转】Qt 实现的拷贝 文件/文件夹 的函数

    转自:http://blog.csdn.net/ymc0329/article/details/7975654

    //拷贝文件:
    bool MyTest007::copyFileToPath(QString sourceDir ,QString toDir, bool coverFileIfExist)
    {
        toDir.replace("\\","/");
        if (sourceDir == toDir){
            return true;
        }
        if (!QFile::exists(sourceDir)){
            return false;
        }
        QDir *createfile     = new QDir;
        bool exist = createfile->exists(toDir);
        if (exist){
            if(coverFileIfExist){
                createfile->remove(toDir);
            }
        }//end if
    
        if(!QFile::copy(sourceDir, toDir))
        {
            return false;
        }
        return true;
    }
    
    //拷贝文件夹:
    bool MyTest007::copyDirectoryFiles(const QString &fromDir, const QString &toDir, bool coverFileIfExist)
    {
        QDir sourceDir(fromDir);
        QDir targetDir(toDir);
        if(!targetDir.exists()){    /**< 如果目标目录不存在,则进行创建 */
            if(!targetDir.mkdir(targetDir.absolutePath()))
                return false;
        }
    
        QFileInfoList fileInfoList = sourceDir.entryInfoList();
        foreach(QFileInfo fileInfo, fileInfoList){
            if(fileInfo.fileName() == "." || fileInfo.fileName() == "..")
                continue;
    
            if(fileInfo.isDir()){    /**< 当为目录时,递归的进行copy */
                if(!copyDirectoryFiles(fileInfo.filePath(), 
                    targetDir.filePath(fileInfo.fileName()),
                    coverFileIfExist))
                    return false;
            }
            else{            /**< 当允许覆盖操作时,将旧文件进行删除操作 */
                if(coverFileIfExist && targetDir.exists(fileInfo.fileName())){
                    targetDir.remove(fileInfo.fileName()); 
                }
    
                /// 进行文件copy
                if(!QFile::copy(fileInfo.filePath(), 
                    targetDir.filePath(fileInfo.fileName()))){
                        return false;
                }
            }
        }
        return true;
    }
  • 相关阅读:
    centos7搭建nexus
    centos7搭建ftp
    tomcat笔记
    mysql跨服务器触发器
    IntelliJ IDEA笔记
    node.js笔记
    myeclipse笔记
    术语
    centos7安装mysql
    js跨域访问资源
  • 原文地址:https://www.cnblogs.com/liuyunfeifei/p/2919960.html
Copyright © 2011-2022 走看看