Qt 4.8
|
The QDirIterator class provides an iterator for directory entrylists. More...
#include <qdiriterator.h>
Public Types | |
enum | IteratorFlag { NoIteratorFlags = 0x0, FollowSymlinks = 0x1, Subdirectories = 0x2 } |
This enum describes flags that you can combine to configure the behavior of QDirIterator. More... | |
Public Functions | |
QFileInfo | fileInfo () const |
Returns a QFileInfo for the current directory entry. More... | |
QString | fileName () const |
Returns the file name for the current directory entry, without the path prepended. More... | |
QString | filePath () const |
Returns the full file path for the current directory entry. More... | |
bool | hasNext () const |
Returns true if there is at least one more entry in the directory; otherwise, false is returned. More... | |
QString | next () |
Advances the iterator to the next entry, and returns the file path of this new entry. More... | |
QString | path () const |
Returns the base directory of the iterator. More... | |
QDirIterator (const QDir &dir, IteratorFlags flags=NoIteratorFlags) | |
Constructs a QDirIterator that can iterate over dir's entrylist, using dir's name filters and regular filters. More... | |
QDirIterator (const QString &path, IteratorFlags flags=NoIteratorFlags) | |
Constructs a QDirIterator that can iterate over path. More... | |
QDirIterator (const QString &path, QDir::Filters filter, IteratorFlags flags=NoIteratorFlags) | |
Constructs a QDirIterator that can iterate over path, with no name filtering and filters for entry filtering. More... | |
QDirIterator (const QString &path, const QStringList &nameFilters, QDir::Filters filters=QDir::NoFilter, IteratorFlags flags=NoIteratorFlags) | |
Constructs a QDirIterator that can iterate over path, using nameFilters and filters. More... | |
virtual | ~QDirIterator () |
Destroys the QDirIterator. More... | |
Properties | |
QScopedPointer< QDirIteratorPrivate > | d |
Friends | |
class | QDir |
The QDirIterator class provides an iterator for directory entrylists.
You can use QDirIterator to navigate entries of a directory one at a time. It is similar to QDir::entryList() and QDir::entryInfoList(), but because it lists entries one at a time instead of all at once, it scales better and is more suitable for large directories. It also supports listing directory contents recursively, and following symbolic links. Unlike QDir::entryList(), QDirIterator does not support sorting.
The QDirIterator constructor takes a QDir or a directory as argument. After construction, the iterator is located before the first directory entry. Here's how to iterate over all the entries sequentially:
The next() function returns the path to the next directory entry and advances the iterator. You can also call filePath() to get the current file path without advancing the iterator. The fileName() function returns only the name of the file, similar to how QDir::entryList() works. You can also call fileInfo() to get a QFileInfo for the current entry.
Unlike Qt's container iterators, QDirIterator is uni-directional (i.e., you cannot iterate directories in reverse order) and does not allow random access.
QDirIterator works with all supported file engines, and is implemented using QAbstractFileEngineIterator.
Definition at line 54 of file qdiriterator.h.
This enum describes flags that you can combine to configure the behavior of QDirIterator.
Enumerator | |
---|---|
NoIteratorFlags | |
FollowSymlinks | |
Subdirectories |
Definition at line 56 of file qdiriterator.h.
QDirIterator::QDirIterator | ( | const QDir & | dir, |
IteratorFlags | flags = NoIteratorFlags |
||
) |
Constructs a QDirIterator that can iterate over dir's entrylist, using dir's name filters and regular filters.
You can pass options via flags to decide how the directory should be iterated.
By default, flags is NoIteratorFlags, which provides the same behavior as in QDir::entryList().
The sorting in dir is ignored.
Definition at line 424 of file qdiriterator.cpp.
QDirIterator::QDirIterator | ( | const QString & | path, |
IteratorFlags | flags = NoIteratorFlags |
||
) |
Constructs a QDirIterator that can iterate over path.
You can pass options via flags to decide how the directory should be iterated.
By default, flags is NoIteratorFlags, which provides the same behavior as in QDir::entryList().
Definition at line 462 of file qdiriterator.cpp.
QDirIterator::QDirIterator | ( | const QString & | path, |
QDir::Filters | filters, | ||
IteratorFlags | flags = NoIteratorFlags |
||
) |
Constructs a QDirIterator that can iterate over path, with no name filtering and filters for entry filtering.
You can pass options via flags to decide how the directory should be iterated.
By default, filters is QDir::NoFilter, and flags is NoIteratorFlags, which provides the same behavior as in QDir::entryList().
Definition at line 445 of file qdiriterator.cpp.
QDirIterator::QDirIterator | ( | const QString & | path, |
const QStringList & | nameFilters, | ||
QDir::Filters | filters = QDir::NoFilter , |
||
IteratorFlags | flags = NoIteratorFlags |
||
) |
Constructs a QDirIterator that can iterate over path, using nameFilters and filters.
You can pass options via flags to decide how the directory should be iterated.
By default, flags is NoIteratorFlags, which provides the same behavior as QDir::entryList().
Definition at line 480 of file qdiriterator.cpp.
|
virtual |
QFileInfo QDirIterator::fileInfo | ( | ) | const |
Returns a QFileInfo for the current directory entry.
Definition at line 557 of file qdiriterator.cpp.
Referenced by QNetworkDiskCache::expire(), QDirPrivate::initFileLists(), and QSslSocketPrivate::systemCaCertificates().
QString QDirIterator::fileName | ( | ) | const |
Returns the file name for the current directory entry, without the path prepended.
This function is convenient when iterating a single directory. When using the QDirIterator::Subdirectories flag, you can use filePath() to get the full path.
Definition at line 537 of file qdiriterator.cpp.
Referenced by QAbstractFileEngine::entryList(), and qmlFilesInDirectory().
QString QDirIterator::filePath | ( | ) | const |
Returns the full file path for the current directory entry.
Definition at line 547 of file qdiriterator.cpp.
Referenced by next().
bool QDirIterator::hasNext | ( | ) | const |
Returns true if there is at least one more entry in the directory; otherwise, false is returned.
Definition at line 515 of file qdiriterator.cpp.
Referenced by QSslSocketPrivate::ensureCiphersAndCertsLoaded(), QAbstractFileEngine::entryList(), QNetworkDiskCache::expire(), QSslCertificate::fromPath(), QDirPrivate::initFileLists(), qmlFilesInDirectory(), QFileSystemModel::remove(), and QSslSocketPrivate::systemCaCertificates().
QString QDirIterator::next | ( | ) |
Advances the iterator to the next entry, and returns the file path of this new entry.
If hasNext() returns false, this function does nothing, and returns a null QString.
You can call fileName() or filePath() to get the current entry file name or path, or fileInfo() to get a QFileInfo for the current entry.
Definition at line 503 of file qdiriterator.cpp.
Referenced by QAbstractFileEngine::entryList(), QNetworkDiskCache::expire(), QSslCertificate::fromPath(), QDirPrivate::initFileLists(), qmlFilesInDirectory(), QFileSystemModel::remove(), and QSslSocketPrivate::systemCaCertificates().
QString QDirIterator::path | ( | ) | const |
Definition at line 88 of file qdiriterator.h.
|
private |
Definition at line 87 of file qdiriterator.h.
Referenced by fileInfo(), fileName(), filePath(), hasNext(), next(), and path().