mirror of
https://bitbucket.org/smil3y/kde-extraapps.git
synced 2025-02-24 19:02:53 +00:00
66 lines
1.9 KiB
C++
66 lines
1.9 KiB
C++
/***************************************************************************
|
|
* Copyright (C) 2007 by Tobias Koenig <tokoe@kde.org> *
|
|
* Copyright (C) 2011 by David Palacio <dpalacio@orbitalibre.org> *
|
|
* *
|
|
* This program is free software; you can redistribute it and/or modify *
|
|
* it under the terms of the GNU General Public License as published by *
|
|
* the Free Software Foundation; either version 2 of the License, or *
|
|
* (at your option) any later version. *
|
|
***************************************************************************/
|
|
|
|
#include "directory.h"
|
|
|
|
#include <QtCore/QDir>
|
|
#include <QtCore/QDirIterator>
|
|
#include <QtCore/QFile>
|
|
#include <QtCore/QFileInfo>
|
|
#include <QtCore/QScopedPointer>
|
|
|
|
Directory::Directory()
|
|
{
|
|
}
|
|
|
|
Directory::~Directory()
|
|
{
|
|
}
|
|
|
|
bool Directory::open( const QString &dirName )
|
|
{
|
|
mDir = dirName;
|
|
QFileInfo dirTest( dirName );
|
|
return dirTest.isDir() && dirTest.isReadable();
|
|
}
|
|
|
|
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;
|
|
}
|
|
|
|
QStringList Directory::list() const
|
|
{
|
|
return recurseDir( mDir, 0 );
|
|
}
|
|
|
|
QIODevice* Directory::createDevice( const QString &path ) const
|
|
{
|
|
QScopedPointer<QFile> file( new QFile( path ) );
|
|
if ( !file->open( QIODevice::ReadOnly ) )
|
|
return nullptr;
|
|
|
|
return file.take();
|
|
}
|
|
|