Exemple #1
0
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());
            }
        }
    }
Exemple #2
0
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;
}
Exemple #4
0
// 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;
}
Exemple #6
0
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();
}