void FileLister::initialize(const QVector< QString > & filters) { completeFileList.clear(); foreach( const QString & filter, filters ) { QRegExp exp( "^([\\+\\-])(.*) \\((.*)\\)$" ); if( exp.indexIn( filter ) < 0 ) { qWarning() << "invalid filter [" << filter << "]"; continue; } const bool add = ( exp.cap( 1 ) == "+" ); QDirIterator directory_walker(exp.cap( 2 ), QString( exp.cap( 3 ) ).split(' '), QDir::Files | QDir::NoSymLinks, QDirIterator::Subdirectories); while(directory_walker.hasNext()) { directory_walker.next(); if( add ) { completeFileList.push_back(directory_walker.fileInfo()); } else { completeFileList.removeOne(directory_walker.fileInfo()); } } }
QStringList MediaHelper::listMedia(QDir dir) { QStringList returning; // go through the sub directories QDirIterator directory_walker(dir, QDirIterator::Subdirectories | QDirIterator::FollowSymlinks); while(directory_walker.hasNext()){ directory_walker.next(); // whizz through every file in the directory // if it has the right extension then we are happy QString name = directory_walker.filePath(); foreach(QString extension, supported) { if (name.endsWith(extension, Qt::CaseInsensitive)) { name.remove(dir.absolutePath()); if(name.startsWith('/') || name.startsWith('\\')) // remove '/' (linux/mac) or '\' (windows?) name.remove(0,1); returning << name; break; } } } return returning; }
/** * Walks through the whole directory tree and returns a list of every file found. * @param fileOrDirectory - File or directory to search * @return a list containing all files found **/ QStringList medAbstractDatabaseImporter::getAllFilesToBeProcessed ( QString fileOrDirectory ) { //Trick to use QString with accent QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8")); QString file = fileOrDirectory; QDir dir ( file ); dir.setFilter ( QDir::Files | QDir::NoSymLinks | QDir::NoDotAndDotDot ); QStringList fileList; if ( dir.exists() ) { QDirIterator directory_walker ( file, QDir::Files, QDirIterator::Subdirectories ); while ( directory_walker.hasNext() ) { fileList << directory_walker.next(); } } else fileList << file; fileList.sort(); return fileList; }
// size type filepath data void SFEFileListQuery::doSend() { QDirIterator directory_walker(_browseDir, QDir::Files | QDir::NoSymLinks, QDirIterator::Subdirectories); while(directory_walker.hasNext()) { directory_walker.next(); QString s = directory_walker.fileInfo().filePath(); QString z = s.replace(_baseDir,"",Qt::CaseSensitive); _fl << z; qDebug() << z; } _out << _fl; qDebug(">> done"); }
/** * Walks through the whole directory tree and returns a list of every file found. * @param fileOrDirectory - File or directory to search * @return a list containing all files found **/ QStringList medAbstractDatabaseImporter::getAllFilesToBeProcessed ( QString fileOrDirectory ) { QString file = fileOrDirectory; QDir dir ( file ); dir.setFilter ( QDir::Files | QDir::NoSymLinks | QDir::NoDotAndDotDot ); QStringList fileList; if ( dir.exists() ) { QDirIterator directory_walker ( file, QDir::Files, QDirIterator::Subdirectories ); while ( directory_walker.hasNext() ) { fileList << directory_walker.next(); } } else fileList << file; fileList.sort(); return fileList; }
void FileReader::run() { QDirIterator::IteratorFlag mode; valid = false; if (recursive == false) { mode = QDirIterator::NoIteratorFlags; } else { mode = QDirIterator::Subdirectories; } QDirIterator directory_walker(path,QDir::Files | QDir::NoSymLinks, mode); bool regular = false; if (fpat.count() > 0 || fblock.count() > 0 || dpat.count() > 0 || dblock.count() > 0) { regular = true; } while(directory_walker.hasNext()) { directory_walker.next(); QFileInfo info = directory_walker.fileInfo(); FsItem aitem(info); bool fcopy = false; bool dcopy = false; if (aitem.shortname == ".") { } else if (aitem.shortname == "..") { } else { if (regular) { for(int i=0; i<dpat.count(); i++) { if (Regular::nextitem(aitem.path, dpat[i]) ) { dcopy = true; break; } } for(int i=0; i<dblock.count(); i++) { if (Regular::nextitem(aitem.path, dblock[i]) ) { dcopy = false; break; } } for(int i=0; i<fpat.count(); i++) { if (Regular::nextitem(aitem.fullname, fpat[i]) ) { fcopy = true; break; } if (Regular::errors.count() > 0) { QOSystem::printerr("error"); emit s_finished(); return; } } for(int i=0; i<fblock.count(); i++) { if (Regular::nextitem(aitem.fullname, fblock[i]) ) { fcopy = false; break; } if (Regular::errors.count() > 0) { QOSystem::printerr("error"); emit s_finished(); return; } } } else { fcopy = true; dcopy = true; } if (dcopy && fcopy) { emit s_new_entry(aitem.fullname); } else { /* not copied */ } } if (delayMS > 0) { QThread::msleep(delayMS); } if (shouldend) { shouldend = false; emit s_finished(); return; } } valid = true; shouldend = false; emit s_finished(); }