[cpp] view plain copy
- //拷貝檔案:
- 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()){
- 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;
- }