示例#1
0
QStringList Directory::recurseDir( const QString &dirPath, int curDepth ) const
{
    QDir dir( dirPath );
    dir.setFilter( QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot );
    QStringList fileList;
    QDirIterator it( dir );
    QFileInfo info;
    while( it.hasNext() ) {
        it.next();
        info = it.fileInfo();
        if ( info.isDir() && curDepth < staticMaxDepth ) {
            fileList.append( recurseDir( info.filePath(), curDepth + 1 ) );
        } else if ( info.isFile() ) {
            fileList.append( info.filePath() );
        }
    }
    return fileList;
}
示例#2
0
void DirReader::recurseDir(const QString &path, int curDepth)
{
        QDir dir(path);
        dir.setSorting(flags);
        dir.setFilter(QDir::AllDirs|QDir::Files);

        const QStringList files = dir.entryList();
	foreach (QString f, files)
        {
                if (f == "." || f == "..")
                        continue;

                QFileInfo finf(dir, f);
		fileHandler(finf);
                if (finf.isDir()) // && (finf.absoluteFilePath() != path))
		{
			if (curDepth < maxDirDepth)
			{
				recurseDir(finf.absoluteFilePath(), curDepth+1);
			}
		}
        }
}
示例#3
0
void DirReader::visit(const QString &path) 
{
    recurseDir(path, 0);
}
示例#4
0
QStringList Directory::list() const
{
    return recurseDir( mDir, 0 );
}