//---------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------- #include "filemanage.h" #include #include #include #include #include #include "Common/app_define.h" #include "unistd.h" #include //---------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------- FileManage::~FileManage() { Run_CP_EN = false; Run_RM_EN = false; wait(); } //---------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------- bool FileManage::removeDir(const QString &fromDir) { QDir dir(fromDir); if(!dir.exists()) return true; dir.setFilter(QDir::AllEntries | QDir::NoDotAndDotDot); QFileInfoList fileList = dir.entryInfoList(); foreach (QFileInfo fi, fileList) { if (fi.isFile()) fi.dir().remove(fi.fileName()); else removeDir(fi.absoluteFilePath()); } return dir.rmdir(dir.absolutePath()); } //---------------------------------------------------------------------------------------------- bool FileManage::removeFile(const QString &fromDir, const QString &fromFile) { QDir sourceDir(fromDir); if(!sourceDir.remove(fromFile)) return false; return true; } void FileManage::removeFile(QString &fname) { char cmd[1024]; sprintf(cmd, "rm \"%s\"",fname.toLocal8Bit().data()); //qDebug(cmd); system(cmd); system("sync"); } //---------------------------------------------------------------------------------------------- QStringList FileManage::getDirs() { QStringList list; QDir sourceDir(dataDir); sourceDir.setSorting(QDir::Time); QFileInfoList fileInfoList = sourceDir.entryInfoList(); foreach (QFileInfo fileInfo, fileInfoList) { if(fileInfo.fileName() == "." || fileInfo.fileName() == "..") continue; if(fileInfo.isDir()) { list.append(fileInfo.fileName()); } } return list; } //---------------------------------------------------------------------------------------------- QStringList FileManage::getFiles(const QString &fromDir) { QStringList list; QDir sourceDir(fromDir); sourceDir.setSorting(QDir::Time); QFileInfoList fileInfoList = sourceDir.entryInfoList(); foreach (QFileInfo fileInfo, fileInfoList) { if(fileInfo.isFile() && fileInfo.fileName().endsWith(testFileType)) { list.append(fileInfo.fileName()); } } return list; } //---------------------------------------------------------------------------------------------- int FileManage::GetFileCount(const QString &fromDir) { int seedcount = 0; QDir sourceDir(fromDir); QFileInfoList fileInfoList = sourceDir.entryInfoList(); foreach(QFileInfo fileInfo, fileInfoList) { if(fileInfo.fileName() == "." || fileInfo.fileName() == "..") continue; if(fileInfo.isDir()) // 当为目录时,递归的进行copy // { seedcount += GetFileCount(fileInfo.filePath()); } else { seedcount += 1; } } return seedcount; } //---------------------------------------------------------------------------------------------- int FileManage::GetFileCountFromDirs(const QStringList &fromDir) { int seedcount = 0; for(int n=0; nstart(); return true; } bool FileManage::deleteDirectoryFiles(const QStringList &fromDir) { Run_RM_EN = true; Run_CP_EN = false; from_Dir = fromDir; this->start(); return true; } //---------------------------------------------------------------------------------------------- bool FileManage::clearDirectoryFiles(const QString &fromDir, const QStringList &fileList) { for(int n=0; n