void initMidiInstruments() { genericMidiInstrument = new MidiInstrument(QWidget::tr("generic midi")); midiInstruments.push_back(genericMidiInstrument); if (MusEGlobal::debugMsg) printf("load user instrument definitions from <%s>\n", MusEGlobal::museUserInstruments.toLatin1().constData()); QDir usrInstrumentsDir(MusEGlobal::museUserInstruments, QString("*.idf")); if (usrInstrumentsDir.exists()) { QFileInfoList list = usrInstrumentsDir.entryInfoList(); QFileInfoList::iterator it=list.begin(); // ddskrjo while(it != list.end()) { // ddskrjo loadIDF(&*it); ++it; } } if (MusEGlobal::debugMsg) printf("load instrument definitions from <%s>\n", MusEGlobal::museInstruments.toLatin1().constData()); QDir instrumentsDir(MusEGlobal::museInstruments, QString("*.idf")); if (instrumentsDir.exists()) { QFileInfoList list = instrumentsDir.entryInfoList(); QFileInfoList::iterator it=list.begin(); // ddskrjo while(it!=list.end()) { loadIDF(&*it); ++it; } } else printf("Instrument directory not found: %s\n", MusEGlobal::museInstruments.toLatin1().constData()); }
void ThumbGenerator::loadDir(QImage& image, const QFileInfo& fi) { QDir dir(fi.absoluteFilePath()); dir.setFilter(QDir::Files); QFileInfoList list = dir.entryInfoList(); QFileInfoList::const_iterator it = list.begin(); const QFileInfo *f; bool found = false; while (it != list.end()) { f = &(*it); QImageReader testread(f->absoluteFilePath()); testread.setAutoDetectImageFormat(false); if (testread.canRead()) { found = true; break; } ++it; } if (found) { loadFile(image, *f); return; } else { // if we didn't find the image yet // go into subdirs and keep looking dir.setFilter(QDir::Dirs); QFileInfoList dirlist = dir.entryInfoList(); if (dirlist.isEmpty()) return; QFileInfoList::const_iterator it = dirlist.begin(); const QFileInfo *f; while (it != dirlist.end() && image.isNull() ) { f = &(*it); ++it; if (f->fileName() == "." || f->fileName() == "..") continue; loadDir(image, *f); } } }
void getAllIncludes(QString path, QFileInfoList h_files, QFileInfoList cpp_files, QStringList& includes) { for(QFileInfoList::iterator it = h_files.begin(); it != h_files.end(); it++) { QFile file(it->absoluteFilePath()); if(file.open(QFile::ReadOnly)) { QTextStream textStream(&file); while(!textStream.atEnd()) { QString line = textStream.readLine(); if( line.indexOf("#include ") != -1 && line.indexOf("Q") != -1 ) { addToStringList(includes, line); } } file.close(); } } for(QFileInfoList::iterator it = cpp_files.begin(); it != cpp_files.end(); it++) { QFile file(it->absoluteFilePath()); if(file.open(QFile::ReadOnly)) { QTextStream textStream(&file); while(!textStream.atEnd()) { QString line = textStream.readLine(); if( line.indexOf("//") == -1 && line.indexOf("#include ") != -1 && line.indexOf("Q") != -1 ) { addToStringList(includes, line); } } file.close(); } } }
//******************************************************************* // read_dir PRIVATE //------------------------------------------------------------------- // Rekursywne odczytywanie calej zawartosci wskazanego katalogu. // Odczytana zawrtosc katalogu jest zapamietywania w hash-tablicy. //******************************************************************* void QBtCompareDirsDialog::read_dir( const QString& in_parent, const QString& in_dir, DirMap& out_data ) const { static const int sflag = QDir::AllDirs | QDir::Files | QDir::NoDotAndDotDot | QDir::Readable | QDir::Writable | QDir::Hidden; const QDir dir( in_dir, "*", QDir::Unsorted, QFlags<QDir::Filter>( sflag ) ); const QFileInfoList items = dir.entryInfoList(); FileMap files_map = FileMap(); QFileInfoList::const_iterator it = items.begin(); const QFileInfoList::const_iterator end = items.end(); while( continue_ && ( it != end ) ) { if( it->isDir() ) read_dir( in_parent, it->absoluteFilePath(), out_data ); else files_map.insert( it->fileName(), *it ); ++it; } QString path = in_dir; out_data.insert( path.remove( in_parent ), files_map ); }
void LoadVideoThread::loadFromImages() { qDebug() << "Start loading frames..."; QDir dirImages(filePath); QFileInfoList listImages = dirImages.entryInfoList(QStringList() << "*.tif" << "*.tiff" << "*.jpg" << "*.png"); if (0 == listImages.count()) { emit completeLoading(false); } else { QFileInfoList::const_iterator it = listImages.begin(); while(it != listImages.end()) { cv::Mat frame = cv::imread(it->filePath().toStdString()); cv::Mat rgbFrame; cv::cvtColor(frame, rgbFrame, CV_BGR2RGB); gtv->appendFrame(rgbFrame); it++; } emit completeLoading(true); } exit(0); }
void SkinWidget::find_file(QString path) { QDir picdir(path); QStringList filters; filters << "*.bmp" << "*.jpg" << "*.png" << "*.gif"; picdir.setNameFilters(filters); if (!picdir.exists()) { return; } picdir.setFilter(QDir::Dirs | QDir::Files); picdir.setSorting(QDir::DirsFirst); QFileInfoList list = picdir.entryInfoList(); for_each(list.begin(), list.end(), [&](QFileInfoList::value_type fileInfo) { if (pic_list.count(fileInfo.fileName()) || (fileInfo.fileName() == ".") || (fileInfo.fileName() == "..")) { return; } else { pic_list.append(fileInfo.fileName()); init_skin(fileInfo.fileName()); } }); }
/** * \brief Loads the fonts in font files within the given directory structure * * Recursively scans all directories under directory looking for TrueType * (.ttf) and OpenType (.otf) font files or TrueType font collections (.ttc) * and loads the fonts to make them available to the application. * * \param directory The directory to scan * \param registeredFor The user of the font. Used with releaseFonts() to * unload the font if no longer in use (by any users) * \param maxDirs The maximum number of subdirectories to scan */ void MythFontManager::LoadFonts(const QString &directory, const QString ®isteredFor, int *maxDirs) { if (directory.isEmpty() || directory == "/" || registeredFor.isEmpty()) return; (*maxDirs)--; if (*maxDirs < 1) { LOG(VB_GENERAL, LOG_WARNING, LOC + "Reached the maximum directory depth " "for a font directory structure. Terminating font scan."); return; } // Load the font files from this directory LoadFontsFromDirectory(directory, registeredFor); // Recurse through subdirectories QDir dir(directory); QFileInfoList files = dir.entryInfoList(); QFileInfo info; for (QFileInfoList::const_iterator it = files.begin(); ((it != files.end()) && (*maxDirs > 0)); ++it) { info = *it; // Skip '.' and '..' and other files starting with "." by checking // baseName() if (!info.baseName().isEmpty() && info.isDir()) LoadFonts(info.absoluteFilePath(), registeredFor, maxDirs); } }
void ImportCoverArtDialog::scanDirectory() { QDir d(m_sourceDir); if (!d.exists()) return; QString nameFilter = gCoreContext->GetSetting("AlbumArtFilter", "*.png;*.jpg;*.jpeg;*.gif;*.bmp"); QFileInfoList list = d.entryInfoList(nameFilter); if (list.isEmpty()) return; QFileInfoList::const_iterator it = list.begin(); const QFileInfo *fi; while (it != list.end()) { fi = &(*it); ++it; if (fi->fileName() == "." || fi->fileName() == "..") continue; QString filename = fi->absoluteFilePath(); if (!fi->isDir()) { m_filelist.append(filename); } } m_currentFile = 0; updateTypeSelector(); updateStatus(); }
bool GalleryUtil::MoveDirectory(const QFileInfo src, QFileInfo &dst) { QDir srcDir(src.absoluteFilePath()); dst = MakeUniqueDirectory(dst); if (!dst.exists()) { srcDir.mkdir(dst.absoluteFilePath()); dst.refresh(); } if (!dst.exists() || !dst.isDir()) return false; bool ok = true; QDir dstDir(dst.absoluteFilePath()); srcDir.setFilter(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot); QFileInfoList list = srcDir.entryInfoList(); QFileInfoList::const_iterator it = list.begin(); for (; it != list.end(); ++it) { const QString fn = it->fileName(); QFileInfo dfi(dstDir, fn); ok &= Move(*it, dfi); } return ok && FileDelete(src); }
QList<ThemeInfo> MythUIHelper::GetThemes(ThemeType type) { QFileInfoList fileList; QList<ThemeInfo> themeList; QDir themeDirs(GetThemesParentDir()); themeDirs.setFilter(QDir::Dirs | QDir::NoDotAndDotDot); themeDirs.setSorting(QDir::Name | QDir::IgnoreCase); fileList.append(themeDirs.entryInfoList()); themeDirs.setPath(d->m_userThemeDir); fileList.append(themeDirs.entryInfoList()); for (QFileInfoList::iterator it = fileList.begin(); it != fileList.end(); ++it) { QFileInfo &theme = *it; if (theme.baseName() == "default" || theme.baseName() == "default-wide" || theme.baseName() == "Slave") continue; ThemeInfo themeInfo(theme.absoluteFilePath()); if (themeInfo.GetType() & type) themeList.append(themeInfo); } return themeList; }
void DialogCleanup::Cleanup( ) { // Get size before. unsigned int startSize = FileUtils::GetFolderSize( m_Path ); m_UI.output->appendPlainText( "Cleaning '" + m_Path + "' ..." ); // Go through files. QDir directory( m_Path ); QFileInfoList files = directory.entryInfoList(); for ( QFileInfoList::iterator i = files.begin(); i != files.end(); i++ ) { QFileInfo file = *i; if ( !file.isReadable() ) continue; if ( file.fileName() == "." || file.fileName() == ".." ) continue; if ( std::find( m_Preserved.begin(), m_Preserved.end(), file.fileName() ) == m_Preserved.end() ) { m_UI.output->appendPlainText( "Removing: " + file.fileName() ); if ( file.isDir() ) FileUtils::DeleteFolder( file.absoluteFilePath() ); if ( file.isFile() ) QFile::remove(file.absoluteFilePath()); } } // Get size after. unsigned int endSize = FileUtils::GetFolderSize( m_Path ); m_UI.output->appendPlainText( "Cleaning complete." ); m_UI.output->appendPlainText( "Cleaned " + QString::number( startSize - endSize ) + " megabytes." ); // Change UI to reflect completion. m_UI.btnDone->setText( "Close" ); }
LADSPAPresetManager::LADSPAPresetManager() { m_iPresetCount = 0; LADSPALoader * loader = new LADSPALoader(); QDir dir(WWidget::getPath(QString("../../ladspa_presets"))); // TODO QFileInfoList files = dir.entryInfoList(); m_Presets.resize(files.count()); for (QFileInfoList::iterator fileIter = files.begin(); fileIter != files.end(); fileIter++) { qDebug() << "LADSPA: file " << (*fileIter).filePath(); if ((*fileIter).isDir()) { continue; } QFile file((* fileIter).filePath()); QDomDocument document("Preset"); file.open(QIODevice::ReadOnly); document.setContent(&file); file.close(); LADSPAPreset * preset = new LADSPAPreset(document.documentElement(), loader); m_Presets [m_iPresetCount] = preset; m_iPresetCount++; } }
/* Helper function for getSystemTimeZoneID() that compares the zoneinfo_file_path (regular) file with files in the zoneinfo_dir_path until it finds a match. The matching file's name is used to determine the time zone ID. */ static QString findZoneinfoFile(QString zoneinfo_file_path, QString zoneinfo_dir_path) { QString zone_id("UNDEF"); QDir zoneinfo_dir(zoneinfo_dir_path); QFileInfoList dirlist = zoneinfo_dir.entryInfoList(); QFileInfo info; QString basename; QFileInfo zoneinfo_file_info(zoneinfo_file_path); for (QFileInfoList::const_iterator it = dirlist.begin(); it != dirlist.end(); ++it) { info = *it; // Skip '.' and '..' and other files starting with "." and // skip localtime (which is often a link to zoneinfo_file_path) basename = info.baseName(); if (basename.isEmpty() || (basename == "localtime")) { continue; } if (info.isDir()) { zone_id = findZoneinfoFile(zoneinfo_file_path, info.absoluteFilePath()); if (zone_id != "UNDEF") return zone_id; } else if (compare_zone_files(zoneinfo_file_info, info)) { zone_id = info.absoluteFilePath(); break; } } return zone_id; }
bool SimpleSearchEngine::setDirectory(const QString &path) { QDir dir(path); if(!dir.exists()) { Log().warning("SimpleSearchEngine: set directory failed: directory doesn't" "exist '%s'", qPrintable(path)); return false; } Log().debug("SimpleSearchEngine: set directory '%s'", qPrintable(path)); QFileInfoList fileInfoList = dir.entryInfoList( QDir::Files); mFilenames.clear(); QFileInfoList::const_iterator iter = fileInfoList.begin(); for(; iter != fileInfoList.end(); ++iter) mFilenames.append(iter->absoluteFilePath()); updateResults(); return true; }
bool GalleryUtil::CopyDirectory(const QFileInfo src, QFileInfo &dst) { QDir srcDir(src.absoluteFilePath()); dst = MakeUniqueDirectory(dst); if (!dst.exists()) { srcDir.mkdir(dst.absoluteFilePath()); dst.refresh(); } if (!dst.exists() || !dst.isDir()) return false; bool ok = true; QDir dstDir(dst.absoluteFilePath()); QFileInfoList list = srcDir.entryInfoList(); QFileInfoList::const_iterator it = list.begin(); for (; it != list.end(); ++it) { const QString fn = it->fileName(); if (fn != "." && fn != "..") { QFileInfo dfi(dstDir, fn); ok &= Copy(*it, dfi); } } return ok; }
bool Config::copyDir(QDir src, QDir dest) const { if(!src.isReadable()) return false; QFileInfoList entries = src.entryInfoList(); QList<QFileInfo>::iterator it; for(it=entries.begin(); it!=entries.end(); it++) { QFileInfo &finfo = *it; if(finfo.fileName()=="." || finfo.fileName()=="..") { // Nada } else if(finfo.isDir()) { dest.mkdir(finfo.fileName()); src.cd(finfo.fileName()); dest.cd(finfo.fileName()); this->copyDir(src, dest); src.cdUp(); dest.cdUp(); } else if(finfo.isFile()) { QFile file(finfo.filePath()); file.copy(dest.absoluteFilePath(finfo.fileName())); } } return true; }
bool VideoMetadataImp::removeDir(const QString &dirName) { QDir d(dirName); QFileInfoList contents = d.entryInfoList(); if (!contents.size()) { return d.rmdir(dirName); } for (QFileInfoList::iterator p = contents.begin(); p != contents.end(); ++p) { if (p->fileName() == "." || p->fileName() == "..") { continue; } if (p->isDir()) { QString fileName = p->fileName(); if (!removeDir(fileName)) return false; } else { if (!QFile(p->fileName()).remove()) return false; } } return d.rmdir(dirName); }
void ThemeChooser::removeThemeDir(const QString &dirname) { QString themeDir = GetConfDir() + "/themes/"; if ((!dirname.startsWith(themeDir)) && (!dirname.startsWith(GetMythUI()->GetThemeCacheDir()))) return; QDir dir(dirname); if (!dir.exists()) return; QFileInfoList list = dir.entryInfoList(); QFileInfoList::const_iterator it = list.begin(); const QFileInfo *fi; while (it != list.end()) { fi = &(*it++); if (fi->fileName() == "." || fi->fileName() == "..") continue; if (fi->isFile() && !fi->isSymLink()) { QFile::remove(fi->absoluteFilePath()); } else if (fi->isDir() && !fi->isSymLink()) { removeThemeDir(fi->absoluteFilePath()); } } dir.rmdir(dirname); }
QStringList MagnatuneRedownloadHandler::GetPurchaseList( ) { debug() << "MagnatuneRedownloadHandler::GetPurchaseList( )"; QStringList returnList; QDir purchaseInfoDir( Amarok::saveLocation( "magnatune.com/purchases/" ) ); if ( !purchaseInfoDir.exists () ) { return returnList; } purchaseInfoDir.setFilter( QDir::Files); purchaseInfoDir.setSorting( QDir::Name ); const QFileInfoList list = purchaseInfoDir.entryInfoList(); QFileInfoList::const_iterator it( list.begin() ); QFileInfo fi; while ( it != list.end() ) { fi = *it; returnList.append( fi.fileName() ); ++it; } debug() << "Done parsing previous purchases!"; return returnList; }
void Traverse::traverse (QString dirname) { QDir dir(dirname); dir.setFilter(QDir::Dirs|QDir::Files); QFileInfoList fileinfolist = dir.entryInfoList(); int ret = -1; for(QFileInfoListIterator it=fileinfolist.begin();ret && it!=fileinfolist.end();++it) { if(it->fileName() == "." || it->fileName() == "..") { continue; } if(it->isDir() && it->isReadable()) { if (type == Dir) list.append(it->absFilePath()); traverse(it->absFilePath()); } else { if (type == File) list.append(it->absFilePath()); } } }
void Application::startUpdateCheck(bool forceWait) { updateCheckTimer.stop(); if (updateRequestId || updateThread || updateReply || !cAutoUpdate()) return; int32 updateInSecs = cLastUpdateCheck() + 3600 + (rand() % 3600) - unixtime(); bool sendRequest = (updateInSecs <= 0 || updateInSecs > 7200); if (!sendRequest && !forceWait) { QDir updates(cWorkingDir() + "tupdates"); if (updates.exists()) { QFileInfoList list = updates.entryInfoList(QDir::Files); for (QFileInfoList::iterator i = list.begin(), e = list.end(); i != e; ++i) { if (QRegularExpression("^(tupdate|tmacupd|tlinuxupd|tlinux32upd)\\d+$", QRegularExpression::CaseInsensitiveOption).match(i->fileName()).hasMatch()) { sendRequest = true; } } } } if (cManyInstance() && !cDebug()) return; // only main instance is updating if (sendRequest) { QNetworkRequest checkVersion(cUpdateURL()); if (updateReply) updateReply->deleteLater(); App::setProxySettings(updateManager); updateReply = updateManager.get(checkVersion); connect(updateReply, SIGNAL(finished()), this, SLOT(updateGotCurrent())); connect(updateReply, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(updateFailedCurrent(QNetworkReply::NetworkError))); // updateRequestId = MTP::send(MTPhelp_GetAppUpdate(MTP_string(cApiDeviceModel()), MTP_string(cApiSystemVersion()), MTP_string(cApiAppVersion()), MTP_string(cApiLang())), rpcDone(&Application::onAppUpdate), rpcFail(&Application::onAppUpdateFail); emit updateChecking(); } else { updateCheckTimer.start((updateInSecs + 5) * 1000); } }
void Application::updateGotCurrent() { if (!updateReply || updateThread) return; cSetLastUpdateCheck(unixtime()); QRegularExpressionMatch m = QRegularExpression(qsl("^\\s*(\\d+)\\s*:\\s*([\\x21-\\x7f]+)\\s*$")).match(QString::fromUtf8(updateReply->readAll())); if (m.hasMatch()) { int32 currentVersion = m.captured(1).toInt(); if (currentVersion > AppVersion) { updateThread = new QThread(); connect(updateThread, SIGNAL(finished()), updateThread, SLOT(deleteLater())); updateDownloader = new PsUpdateDownloader(updateThread, m.captured(2)); updateThread->start(); } } if (updateReply) updateReply->deleteLater(); updateReply = 0; if (!updateThread) { QDir updates(cWorkingDir() + "tupdates"); if (updates.exists()) { QFileInfoList list = updates.entryInfoList(QDir::Files); for (QFileInfoList::iterator i = list.begin(), e = list.end(); i != e; ++i) { if (QRegularExpression("^(tupdate|tmacupd|tlinuxupd|tlinux32upd)\\d+$", QRegularExpression::CaseInsensitiveOption).match(i->fileName()).hasMatch()) { QFile(i->absoluteFilePath()).remove(); } } } emit updateLatest(); } startUpdateCheck(true); App::writeConfig(); }
/** * \brief Recursively scan directories and create an associative array * with the number of times we've seen each extension. */ bool MythMediaDevice::ScanMediaType(const QString &directory, ext_cnt_t &cnt) { QDir d(directory); if (!d.exists()) return false; QFileInfoList list = d.entryInfoList(); for( QFileInfoList::iterator it = list.begin(); it != list.end(); ++it ) { QFileInfo &fi = *it; if (("." == fi.fileName()) || (".." == fi.fileName())) continue; if (fi.isSymLink()) continue; if (fi.isDir()) { ScanMediaType(fi.absoluteFilePath(), cnt); continue; } const QString ext = fi.suffix(); if (!ext.isEmpty()) cnt[ext.toLower()]++; } return !cnt.empty(); }
/*! Removes everything from \a dir. This function is recursive. It doesn't remove \a dir itself, but if it was called recursively, then the caller will remove \a dir. */ bool Config::removeDirContents(const QString& dir) { QDir dirInfo(dir); QFileInfoList entries = dirInfo.entryInfoList(); bool ok = true; QFileInfoList::Iterator it = entries.begin(); while (it != entries.end()) { if ((*it).isFile()) { if (!dirInfo.remove((*it).fileName())) ok = false; } else if ((*it).isDir()) { if ((*it).fileName() != "." && (*it).fileName() != "..") { if (removeDirContents((*it).absoluteFilePath())) { if (!dirInfo.rmdir((*it).fileName())) ok = false; } else { ok = false; } } } ++it; } return ok; }
/*递归删除文件夹内容 ** **dir :文件夹的名字,绝对路径和相对路径均可 ** **返回值 :成功后返回true;否则返回false */ bool removeFileWithDir(const QString &dirName) { static QVector<QString> dirNames; QDir dir; QFileInfoList filst; QFileInfoList::iterator curFi; //初始化 dirNames.clear(); if(dir.exists()){ dirNames<<dirName; } else{ return true; } //遍历各级文件夹,并将这些文件夹中的文件删除 for(int i=0;i<dirNames.size();++i) { dir.setPath(dirNames[i]); filst=dir.entryInfoList(QDir::Dirs|QDir::Files |QDir::Readable|QDir::Writable |QDir::Hidden|QDir::NoDotAndDotDot ,QDir::Name); if(filst.size()>0) { curFi=filst.begin(); while(curFi!=filst.end()) { //遇到文件夹,则添加至文件夹列表dirs尾部 if(curFi->isDir()) { dirNames.push_back(curFi->filePath()); } else if(curFi->isFile()) { //遇到文件,则删除之 if(!dir.remove(curFi->fileName())) { //return false; } } curFi++; }//end of while } } #if 0 //删除文件夹 for(int i=dirNames.size()-1;i>=0;--i) { if(!dir.rmdir(dirNames[i])) { //return false; } } #endif return true; }
void ImageSyncApp::extractFileNames( const QFileInfoList & allFiles, JobQueueSynchronizedPtr & jobs, QString destinationDirectory ) { for( QFileInfoList::const_iterator it = allFiles.begin(); it != allFiles.end(); ++it ) { QFileInfo fileInfo = *it; JobPtr job( new Job( fileInfo.absolutePath(), fileInfo.fileName(), destinationDirectory, fileInfo.baseName(), fileInfo.size() ) ); jobs->enqueue( job ); } }
void KTNEFMain::cleanup() { QDir d( KGlobal::dirs()->localkdedir() + "/share/apps/ktnef/tmp/" ); QFileInfoList list = d.entryInfoList( QDir::Files | QDir::Hidden, QDir::Unsorted ); QFileInfoList::iterator it; for ( it = list.begin(); it != list.end(); ++it ) { d.remove( it->absoluteFilePath() ); } }
void StatData::collectFilesExts (const QFileInfoList& l) { typedef QFileInfoList::const_iterator It; for (It it = l.begin(); it != l.end(); ++it) { Q_ASSERT (it->isFile()); incExtCnt (it->suffix(), it->size()); } }
int PathManager::ReplacePakInDec(QString &path, QString &oldName, QString &newName) { QVector<QString> dirNames; QDir dir(path); QFileInfoList filst; QFileInfoList::iterator curFi; //初始化 dirNames.clear(); if (dir.exists()){ dirNames << path; } else{ return 0; } //遍历各级文件夹,并将这些文件夹中的文件删除 for (int i = 0; i<dirNames.size(); ++i) { dir.setPath(dirNames[i]); filst = dir.entryInfoList(QDir::Dirs | QDir::Files | QDir::Readable | QDir::Writable | QDir::Hidden | QDir::NoDotAndDotDot , QDir::Name); if (filst.size()>0){ curFi = filst.begin(); while (curFi != filst.end()) { //遇到文件夹,则添加至文件夹列表dirs尾部 if (curFi->isDir()){ dirNames.push_back(curFi->filePath()); } else if (curFi->isFile()){ //遇到文件,则删除之 if (curFi->absoluteFilePath().toLower().endsWith(".smali")){ if (!ReplacePakNameInSmali(curFi->absoluteFilePath(), oldName, newName)){ return 1; } } else if (curFi->absoluteFilePath().toLower().endsWith(".xml")){ if (!ReplacePakNameInXml(path, curFi->absoluteFilePath(), oldName, newName)){ return 1; } } } curFi++; }//end of while } } int ret = 0; ret = RenamePakInDec(path, oldName, newName); if (ret != 0){ return ret; } return 0; }
/** \fn ImageScanThread::SyncFilesFromDir(QString &, int) * \brief Loads all available files from the path on the * backend and syncs depending if they are a directory or file * \param path The current directory with the files that shall be scanned syncronized * \param parentId The id of the parent directory which is required for possible subdirectories * \param baseDirectory The current root storage group path, this will be stripped before insertion into the database * \return void */ void ImageScanThread::SyncFilesFromDir(QString &path, int parentId, const QString &baseDirectory) { if (!m_continue) { LOG(VB_FILE, LOG_DEBUG, QString("Syncing from SG dir %1 interrupted").arg(path)); return; } LOG(VB_FILE, LOG_DEBUG, QString("Syncing from SG dir %1").arg(path)); QDir dir(path); if (!dir.exists()) return; // Only get files and dirs, no special and hidden stuff dir.setFilter(QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot | QDir::NoSymLinks); QFileInfoList list = dir.entryInfoList(); if (list.isEmpty()) return; for (QFileInfoList::iterator it = list.begin(); it != list.end(); ++it) { if (!m_continue) { LOG(VB_FILE, LOG_DEBUG, QString("Syncing from SG dir %1 interrupted").arg(path)); return; } QFileInfo fileInfo = *it; if (fileInfo.isDir()) { // Get the id. This will be new parent id // when we traverse down the current directory. int id = SyncDirectory(fileInfo, parentId, baseDirectory); // Get new files within this directory QString fileName = fileInfo.absoluteFilePath(); SyncFilesFromDir(fileName, id, baseDirectory); } else { SyncFile(fileInfo, parentId, baseDirectory); } // Increase the current progress count in case a // progressbar is used to show the sync progress if (m_progressTotalCount > m_progressCount) ++m_progressCount; } }