QDirIterator Class
QDirIterator 클래스는 디렉터리 항목 목록을 위한 반복자를 제공합니다. 더 보기...
| 헤더: | #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::Subdirectories);
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::ReadOnly);
qDebug() << f.fileName() << f.readAll().trimmed().toDouble() / 1000 << "MHz";
}next() 및 nextFileInfo() 함수는 이터레이터를 한 단계 진행하고 다음 디렉터리 항목의 경로 또는 QFileInfo 를 반환합니다. 또한 이터레이터를 먼저 진행하지 않고도 filePath() 또는 fileInfo()를 호출하여 현재 파일의 경로 또는 QFileInfo 를 얻을 수 있습니다. fileName() 함수는 QDir::entryList()의 동작 방식과 유사하게 파일 이름만 반환합니다.
Qt의 컨테이너 이터레이터와 달리, QDirIterator는 단방향이며(즉, 디렉터리를 역순으로 순회할 수 없음), 임의 접근을 허용하지 않습니다.
참고: 이 클래스는 더 이상 사용되지 않으며 향후 Qt 릴리스에서 제거될 수 있습니다. 대신 QDirListing 를 사용하십시오. 자세한 내용은 “QDirIterator를 QDirListing으로 이식하기”를 참조하십시오.
QDir 및 QDir::entryList()도 참조하십시오 .
멤버 유형 문서
enum QDirIterator::IteratorFlag
flags QDirIterator::IteratorFlags
이 열거형은 QDirIterator 의 동작을 구성하기 위해 조합할 수 있는 플래그를 설명합니다.
| 상수 | 값 | 설명 |
|---|---|---|
QDirIterator::NoIteratorFlags | 0x0 | 플래그가 없음을 나타내는 기본값입니다. 이터레이터는 지정된 경로의 항목을 반환합니다. |
QDirIterator::Subdirectories | 0x2 | 모든 하위 디렉터리의 항목도 함께 나열합니다. |
QDirIterator::FollowSymlinks | 0x1 | 이 플래그를 Subdirectories와 함께 사용하면, 지정된 경로의 모든 하위 디렉터리를 순회하며 모든 심볼릭 링크를 따라갈 수 있습니다. 심볼릭 링크 루프(예: "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 를 반환합니다. 가급적 이 메서드를 호출하기 전에 항상 hasNext()을 호출해야 합니다.
fileName() 또는 filePath()을 호출하여 현재 항목의 파일 이름이나 경로를 얻거나, fileInfo()을 호출하여 현재 항목에 대한 QFileInfo 를 얻을 수 있습니다.
QFileInfo 에 관심이 있다면 next() 대신 nextFileInfo()을 호출하십시오.
hasNext(), nextFileInfo(), fileName(), filePath() 및 fileInfo()도 참조하십시오 .
[since 6.3] QFileInfo QDirIterator::nextFileInfo()
이테레이터를 다음 항목으로 이동시키고, 이 새로운 항목의 파일 정보를 반환합니다. hasNext()이 false 를 반환하는 경우, 이 함수는 아무 작업도 수행하지 않고 빈 QFileInfo 를 반환합니다. 이상적으로는 이 메서드를 호출하기 전에 항상 hasNext()을 호출해야 합니다.
fileName() 또는 filePath()을 호출하여 현재 항목의 파일 이름이나 경로를 얻거나, fileInfo()을 호출하여 현재 항목에 대한 QFileInfo 를 얻을 수 있습니다.
filePath()만 필요한 경우에는 nextFileInfo() 대신 next()를 호출하십시오.
이 함수는 Qt 6.3에서 도입되었습니다.
hasNext(), fileName(), filePath(), fileInfo()도 참조하십시오 .
QString QDirIterator::path() const
이테레이터의 기본 디렉터리를 반환합니다.
© 2026 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.