예제 #1
0
bool Thread::copyFile(QString sPath,QString tPath)
{

    while(sPath == tPath)
    {
        tPath = changeFileName(tPath);
    }
   QFileInfo fileInfo(sPath);
   QFile cFile(tPath);
   if(cFile.exists())
   {
               cFile.remove();
   }

   if(fileInfo.isDir())
   {
        if(!copyDirectoryFiles(sPath,tPath))
        {
            return false;
        }
   }
   else
   {
        if(!copy(sPath,tPath))
        {
            return false;
        }
   }

   return true;
}
예제 #2
0
void MainWindow::startCopyDirectory(QString &path)
{
    //qDebug() << "startCopyDirectory() :" + path;
    if(!autoSyn && !click)
        return;

    QDir dir(path);
    for(auto newPath : compareList)
    {
        // 不带文件夹名
        //qDebug() << "newPath" + newPath;
        copyDirectoryFiles(path,newPath,true);
        lastSynTimeNotify();
    }
}
예제 #3
0
bool SelectFile::copyDirectoryFiles(QString fromDir ,QString toDir, bool coverFileIfExist)
{
    QDir sourceDir(fromDir);
    QDir targetDir(toDir);
    QString toFile;
    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{            /**< 当允许覆盖操作时,将旧文件进行删除操作 */
            toFile = targetDir.filePath(fileInfo.fileName());
//            QMessageBox::warning(0,"PATH1",toFile,QMessageBox::Yes);
            if(coverFileIfExist && targetDir.exists(fileInfo.fileName())){
                targetDir.remove(fileInfo.fileName());
            }
            toFile = toDir+"\\"+fileInfo.fileName();
            qDebug() << toFile << "  remove from m_pictures";
             if(mw->m_pictures.contains(toFile)){
//                 QMessageBox::warning(0,"PATH2",toFile,QMessageBox::Yes);
                 mw->m_pictures.removeAll(toFile);
             }

            /// 进行文件copy
            if(!QFile::copy(fileInfo.filePath(),
                            targetDir.filePath(fileInfo.fileName()))){
                return false;
            }
        }
    }
    return true;
}
예제 #4
0
bool MainWindow::copyDirectoryFiles(const QString &fromDir, const QString &toDir, bool coverFileIfExist)
{
    if(isPathExcept(fromDir))
        return true;
    // 流逝时间计算
    static QElapsedTimer et;
    et.start();

    QDir sourceDir(fromDir);
    QDir targetDir(toDir);
    if(!targetDir.exists()){    /** 如果目标目录不存在,则进行创建 */
        if(!targetDir.mkdir(targetDir.path()))
        {
            qDebug() << "mkdir " + targetDir.filePath(sourceDir.dirName()) + " failed";
        }
    }

    QFileInfoList fileInfoList = sourceDir.entryInfoList();

    foreach(QFileInfo fileInfo, fileInfoList)
    {
        if(fileInfo.fileName() == "." || fileInfo.fileName() == "..")
            continue;

        if(fileInfo.isDir())
        {   /**< 当为目录时,递归的进行 copy */
            qDebug() << fileInfo.filePath() << "-> " << targetDir.filePath(fileInfo.fileName());
            copyDirectoryFiles(fileInfo.filePath(),targetDir.filePath(fileInfo.fileName()),coverFileIfExist);
        }
        else
        {
            // 同步文件
            synTwoFiles(fileInfo.filePath(),targetDir.filePath(fileInfo.fileName()));
        }
        if(et.elapsed() > 300)
        {
            QApplication::processEvents();
            et.restart();
            qDebug() << "回到UI";
        }
    }
    return true;
}
예제 #5
0
bool Thread::copyDirectoryFiles(const QString &fromDir,const QString &toDir)
{
        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())))
                    return false;
            }
            else
            {
                /**< 当允许覆盖操作时,将旧文件进行删除操作 */
                if(targetDir.exists(fileInfo.fileName()))
                {
                    targetDir.remove(fileInfo.fileName());
                }

                /// 进行文件copy
                if(!copy(fileInfo.filePath(),targetDir.filePath(fileInfo.fileName())))
                {
                        return false;
                }
            }
        }
        return true;
}
예제 #6
0
void SelectFile::copyFile(QString path)
{
    QDir dir(path);
    QFileInfoList list;
    QDir flash_dir("C:/pic/SWWYL");

    // 复制结果文件到程序用户选择的输出目录
    switch (m_pt) {
    case HYFM:
//        if(m_first_change) {
//            m_first_change = false;
//            QMessageBox::warning(0,"PATH",path,QMessageBox::Yes);
            QThread::sleep(1);
            copyDirectoryFiles(path, m_outPath, true );
            copyDirectoryFiles(path, "C:/pic/HYFM/", true );
//        }
        break;
    case SWWYL:

        list = dir.entryInfoList();
        qDebug() << list.size();
        if (list.size() == 30+2){
            QDir::setCurrent(root_path+"/yubao/wenyanliu/");


            QThread::sleep(1);
            copyDirectoryFiles(path, m_outPath, true );

            // call qie ge program.
            QProcess::execute("./QIEGE.exe");

            // copy 0,1,2,3,4,5 pic to flash dir.
            QDir::setCurrent(root_path+"/yubao/wenyanliu/");
            copyDirectoryFiles("./3d_qiege/", "C:/pic/SWWYL_3d/", true );
//            copyDirectoryFiles("./flash/", "C:/pic/SWWYL_2d/", true );


            QDir::setCurrent(root_path);
        }
        break;
    case ZCDW:

        list = dir.entryInfoList();
        qDebug() << list.size();
        if (list.size() == 101+2){
            QDir::setCurrent(root_path+"/yubao/zcdw/");


            QThread::sleep(1);
            copyDirectoryFiles(path, m_outPath, true );


            copyDirectoryFiles(path, "C:/pic/ZCDW/", true );

            QDir::setCurrent(root_path);
        }
        break;
    default:
        break;
    }

}