QDirIterator Class
QDirIterator 클래스는 디렉터리 항목 목록에 대한 이터레이터를 제공합니다. 더 보기...
Header: | #include <QDirIterator> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
- 상속된 멤버를 포함한 모든 멤버 목록
- QDirIterator는 입력/출력 및 네트워킹의 일부입니다.
공용 유형
enum | IteratorFlag { NoIteratorFlags, Subdirectories, FollowSymlinks } |
flags | IteratorFlags |
공용 함수
QDirIterator(const QDir &dir, QDirIterator::IteratorFlags flags = NoIteratorFlags) | |
QDirIterator(const QString &path, QDirIterator::IteratorFlags flags = NoIteratorFlags) | |
QDirIterator(const QString &path, QDir::Filters filters, QDirIterator::IteratorFlags flags = NoIteratorFlags) | |
QDirIterator(const QString &path, const QStringList &nameFilters, QDir::Filters filters = QDir::NoFilter, QDirIterator::IteratorFlags flags = NoIteratorFlags) | |
~QDirIterator() | |
QFileInfo | fileInfo() const |
QString | fileName() const |
QString | filePath() const |
bool | hasNext() const |
QString | next() |
(since 6.3) QFileInfo | nextFileInfo() |
QString | path() const |
상세 설명
QDirIterator를 사용하여 디렉토리의 항목을 한 번에 하나씩 탐색할 수 있습니다. QDir::entryList () 및 QDir::entryInfoList()과 비슷하지만 한 번에 한 항목씩 나열하는 것이 아니라 한 번에 한 항목씩 나열하기 때문에 확장성이 뛰어나며 대규모 디렉토리에 더 적합합니다. 또한 디렉터리 콘텐츠를 재귀적으로 나열하고 심볼릭 링크를 따르는 것도 지원합니다. QDir::entryList ()와 달리 QDirIterator는 정렬을 지원하지 않습니다.
QDirIterator 생성자는 QDir 또는 디렉터리를 인수로 받습니다. 생성 후 이터레이터는 첫 번째 디렉토리 항목 앞에 위치합니다. 모든 항목을 순차적으로 반복하는 방법은 다음과 같습니다:
QDirIterator it("/etc", QDirIterator::하위 디렉터리);while (it.hasNext()) {. QString dir = it.next(); qDebug() << dir; // /etc/. // /etc/.. // /etc/X11 // /etc/X11/fs // ...}
이름별로 필터링된 모든 파일을 재귀적으로 찾아서 읽는 방법은 다음과 같습니다:
QDirIterator it("/sys", QStringList()<< "scaling_cur_freq", QDir::NoFilter, QDirIterator::하위 디렉토리);while (it.hasNext()) { { QFile f(it.next()); f.open(QIODevice::읽기 전용); qDebug() << f.fileName() << f.readAll().trimmed().toDouble() / 1000 << "MHz"; }
next() 및 nextFileInfo() 함수는 반복기를 전진시키고 다음 디렉토리 항목의 경로 또는 QFileInfo 를 반환합니다. filePath () 또는 fileInfo()을 호출하여 반복기를 먼저 진행하지 않고 현재 파일 경로 또는 QFileInfo 를 가져올 수도 있습니다. fileName () 함수는 QDir::entryList()의 작동 방식과 유사하게 파일 이름만 반환합니다.
Qt의 컨테이너 이터레이터와 달리 QDirIterator는 단방향이며(즉, 디렉터리를 역순으로 이터레이트할 수 없음) 임의 액세스를 허용하지 않습니다.
참고: 이 클래스는 더 이상 사용되지 않으며 Qt 릴리스에서 제거될 수 있습니다. 대신 QDirListing 을 사용하십시오.
QDir 및 QDir::entryList()도 참조하세요 .
멤버 유형 문서
열거형 QDirIterator::이터레이터플래그
플래그 QDirIterator::이터레이터플래그
이 열거형은 QDirIterator 의 동작을 구성하기 위해 조합할 수 있는 플래그를 설명합니다.
Constant | 값 | 설명 |
---|---|---|
QDirIterator::NoIteratorFlags | 0x0 | 기본값으로, 플래그가 없음을 나타냅니다. 이터레이터는 할당된 경로에 대한 항목을 반환합니다. |
QDirIterator::Subdirectories | 0x2 | 모든 하위 디렉터리 안의 항목도 나열합니다. |
QDirIterator::FollowSymlinks | 0x1 | 이 플래그를 하위 디렉터리와 함께 사용하면 모든 심볼릭 링크를 따라 할당된 경로의 모든 하위 디렉터리를 반복할 수 있습니다. 심볼릭 링크 루프(예: "link" => "." 또는 "link" => "...")는 자동으로 감지되어 무시됩니다. |
IteratorFlags 유형은 QFlags<IteratorFlag>에 대한 typedef입니다. IteratorFlag 값의 OR 조합을 저장합니다.
멤버 함수 문서
QDirIterator::QDirIterator(const QDir &dir, QDirIterator::IteratorFlags flags = NoIteratorFlags)
dir 의 이름 필터와 일반 필터를 사용하여 dir 의 항목 목록을 반복할 수 있는 QDirIterator를 구축합니다. flags 을 통해 옵션을 전달하여 디렉터리를 반복할 방법을 결정할 수 있습니다.
기본적으로 flags 은 NoIteratorFlags 으로 QDir::entryList()에서와 동일한 동작을 제공합니다.
dir 의 정렬은 무시됩니다.
참고: 존재하지 않는 파일을 가리키는 심볼릭 링크를 나열하려면 QDir::System 을 플래그에 전달해야 합니다.
hasNext(), next() 및 IteratorFlags 를참조하세요 .
QDirIterator::QDirIterator(const QString &path, QDirIterator::IteratorFlags flags = NoIteratorFlags)
path 을 반복할 수 있는 QDirIterator를 구축합니다. flags 을 통해 옵션을 전달하여 디렉터리 반복 방법을 결정할 수 있습니다.
기본적으로 flags 은 NoIteratorFlags 으로 QDir::entryList()에서와 동일한 동작을 제공합니다.
참고: 존재하지 않는 파일을 가리키는 심볼릭 링크를 나열하려면 QDir::System 를 플래그에 전달해야 합니다.
hasNext(), next() 및 IteratorFlags 를참조하세요 .
QDirIterator::QDirIterator(const QString &path, QDir::Filters filters, QDirIterator::IteratorFlags flags = NoIteratorFlags)
이름 필터링 없이 path, 항목 필터링을 위해 filters 을 반복할 수 있는 QDirIterator를 구축합니다. flags 을 통해 옵션을 전달하여 디렉터리를 반복할 방법을 결정할 수 있습니다.
기본적으로 filters 은 QDir::NoFilter, flags 은 NoIteratorFlags 으로, QDir::entryList()와 동일한 동작을 제공합니다.
참고: 존재하지 않는 파일을 가리키는 심볼릭 링크를 나열하려면 QDir::System 을 플래그에 전달해야 합니다.
hasNext(), next() 및 IteratorFlags도 참조하세요 .
QDirIterator::QDirIterator(const QString &path, const QStringList &nameFilters, QDir::Filters filters = QDir::NoFilter, QDirIterator::IteratorFlags flags = NoIteratorFlags)
nameFilters 및 filters 를 사용하여 path 를 반복할 수 있는 QDirIterator를 구축합니다. flags 를 통해 옵션을 전달하여 디렉터리를 반복할 방법을 결정할 수 있습니다.
기본적으로 flags 은 NoIteratorFlags 으로 QDir::entryList()와 동일한 동작을 제공합니다.
예를 들어 다음 이터레이터를 사용하여 오디오 파일을 반복할 수 있습니다:
QDirIterator audioFileIt(audioPath, {"*.mp3", "*.wav"}, QDir::Files);
참고: 존재하지 않는 파일을 가리키는 심볼릭 링크를 나열하려면 QDir::System 을 플래그에 전달해야 합니다.
hasNext(), next(), IteratorFlags, 및 QDir::setNameFilters()도 참조하세요 .
[noexcept]
QDirIterator::~QDirIterator()
QDirIterator 를 파괴합니다.
QFileInfo QDirIterator::fileInfo() const
현재 디렉토리 항목에 대해 QFileInfo 를 반환합니다.
filePath() 및 fileName()도 참조하세요 .
QString QDirIterator::fileName() const
경로를 앞에 붙이지 않고 현재 디렉터리 항목의 파일 이름을 반환합니다.
이 함수는 단일 디렉터리를 반복할 때 편리합니다. QDirIterator::Subdirectories 플래그를 사용하는 경우 filePath()를 사용하여 전체 경로를 가져올 수 있습니다.
filePath() 및 fileInfo()도 참조하세요 .
QString QDirIterator::filePath() const
현재 디렉토리 항목의 전체 파일 경로를 반환합니다.
fileInfo() 및 fileName()도 참조하세요 .
bool QDirIterator::hasNext() const
디렉터리에 항목이 하나 이상 있으면 true
을 반환하고, 그렇지 않으면 false를 반환합니다.
next(), nextFileInfo(), fileName(), filePath() 및 fileInfo()도 참조하세요 .
QString QDirIterator::next()
이터레이터를 다음 항목으로 전진시키고 이 새 항목의 파일 경로를 반환합니다. hasNext ()가 false
을 반환하면 이 함수는 아무 작업도 수행하지 않고 빈 QString 을 반환합니다.
fileName() 또는 filePath()을 호출하여 현재 항목의 파일 이름이나 경로를 가져오거나 fileInfo()을 호출하여 현재 항목의 QFileInfo 을 가져올 수 있습니다.
QFileInfo 에 관심이 있는 경우 next() 대신 nextFileInfo()를 호출하세요.
hasNext(), nextFileInfo(), fileName(), filePath() 및 fileInfo()도 참조하세요 .
[since 6.3]
QFileInfo QDirIterator::nextFileInfo()
이터레이터를 다음 항목으로 전진시키고 이 새 항목의 파일 정보를 반환합니다. hasNext ()가 false
을 반환하면 이 함수는 아무 작업도 수행하지 않고 빈 QFileInfo 을 반환합니다.
fileName() 또는 filePath()을 호출하여 현재 항목의 파일 이름 또는 경로를 가져오거나 fileInfo()을 호출하여 현재 항목의 QFileInfo 을 가져올 수 있습니다.
filePath()만 필요한 경우 nextFileInfo() 대신 next()를 호출하세요.
이 함수는 Qt 6.3에 도입되었습니다.
hasNext(), fileName(), filePath() 및 fileInfo()도 참조하십시오 .
QString QDirIterator::path() const
이터레이터의 기본 디렉터리를 반환합니다.
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.