Chinaunix

标题: Qt 实现的拷贝文件夹的函数 [打印本页]

作者: boy11-2    时间: 2011-03-15 16:50
标题: Qt 实现的拷贝文件夹的函数
  1. #include <QDir>
  2. #include <QFileInfoList>

  3. /**
  4.   qCopyDirectory -- 拷贝目录
  5.   fromDir : 源目录
  6.   toDir   : 目标目录
  7.   bCoverIfFileExists : ture:同名时覆盖  false:同名时返回false,终止拷贝
  8.   返回: ture拷贝成功 false:拷贝未完成
  9. */
  10. bool qCopyDirectory(const QDir& fromDir, const QDir& toDir, bool bCoverIfFileExists)
  11. {
  12.     QDir formDir_ = fromDir;
  13.     QDir toDir_ = toDir;

  14.     if(!toDir_.exists())
  15.     {
  16.         if(!toDir_.mkdir(toDir.absolutePath()))
  17.             return false;
  18.     }

  19.     QFileInfoList fileInfoList = formDir_.entryInfoList();
  20.     foreach(QFileInfo fileInfo, fileInfoList)
  21.     {
  22.         if(fileInfo.fileName() == "." || fileInfo.fileName() == "..")
  23.             continue;

  24.         //拷贝子目录
  25.         if(fileInfo.isDir())
  26.         {
  27.             //递归调用拷贝
  28.             if(!qCopyDirectory(fileInfo.filePath(), toDir_.filePath(fileInfo.fileName())))
  29.                 return false;
  30.         }
  31.         //拷贝子文件
  32.         else
  33.         {
  34.             if(bCoverIfFileExists && toDir_.exists(fileInfo.fileName()))
  35.             {
  36.                 toDir_.remove(fileInfo.fileName());
  37.             }
  38.             if(!QFile::copy(fileInfo.filePath(), toDir_.filePath(fileInfo.fileName())))
  39.             {
  40.                 return false;
  41.             }
  42.         }
  43.     }
  44.     return true;
  45. }
复制代码

作者: nizvoo    时间: 2011-03-19 17:28
还真没有想过用qt作这个功能阿, 一般就做下界面。功能全是不同的平台上自己写。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2