程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> Qt拷貝文件、文件夾(QFile::copy)

Qt拷貝文件、文件夾(QFile::copy)

編輯:C++入門知識

[cpp] 
//拷貝文件: 
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; 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved