//---------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------- #include "filemanage.h" //---------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------- FileManage::~FileManage() { Run_EN = false; wait(); } //---------------------------------------------------------------------------------------------- bool FileManage::createDir(const QString &newDir) { QDir *dir = new QDir(); bool exist = dir->exists(dataDir+newDir); bool ifok = false; if(!exist) { ifok = dir->mkdir(dataDir+newDir); } return ifok; } //---------------------------------------------------------------------------------------------- bool FileManage::createFile(const QString &fromDir,const QString &newFile) { QFile file(dataDir+fromDir+"/"+newFile); bool res = file.open(QIODevice::ReadWrite); if(res) file.close(); return res; } //---------------------------------------------------------------------------------------------- bool FileManage::removeDir(const QString &fromDir) { //qDebug(fromDir.toLatin1().data()); //if (fromDir.isEmpty()) // return false; 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(dataDir+fromDir); if(!sourceDir.remove(fromFile)) return false; return true; } //---------------------------------------------------------------------------------------------- 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::getDirs(bool ifDefault) { QStringList list; QDir sourceDir(dataDir); sourceDir.setSorting(QDir::Time); QFileInfoList fileInfoList = sourceDir.entryInfoList(); foreach (QFileInfo fileInfo, fileInfoList) { if(fileInfo.fileName() == "." || fileInfo.fileName() == "..") continue; if(ifDefault) { if(fileInfo.isDir()) { list.append(fileInfo.fileName()); } } else { if(fileInfo.isDir() && fileInfo.fileName() != "Default_Battery") { list.append(fileInfo.fileName()); } } } return list; } //---------------------------------------------------------------------------------------------- QStringList FileManage::getFiles(const QString &fromDir,const QString &fileType) { QStringList list; QDir sourceDir(dataDir+fromDir); sourceDir.setSorting(QDir::Time); QFileInfoList fileInfoList = sourceDir.entryInfoList(); foreach (QFileInfo fileInfo, fileInfoList) { //if(fileInfo.fileName() == "." || fileInfo.fileName() == "..") // continue; if(fileInfo.isFile() && fileInfo.fileName().endsWith(fileType)) { if(fileType == ".xml") list.append(fileInfo.baseName()); else 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::clearDirectoryFiles(const QString &fromDir, const QStringList &fileList) { for(int n=0; n