
RecursiveIteratorIterator::setMaxDepth 메서드는 반복자의 깊이 제한을 의미합니다. 이 메서드를 사용하여 디렉토리 구조의 최대 깊이를 제한할 수는 있지만, 디렉토리 구조 자체를 제한하는 것은 아닙니다.
이 메서드를 사용할 때, 이미 탐색된 디렉토리들은 다시 탐색되지 않습니다. 반복자가 디렉토리 구조의 최대 깊이를 초과하는 디렉토리를 만나면, 그 디렉토리와 그 아래의 모든 디렉토리들은 건너뛰게 됩니다.
제한한 디렉토리 구조의 최대 깊이를 얻으려면, RecursiveIteratorIterator 클래스의 getDepth() 메서드를 사용할 수 있습니다. 이 메서드는 현재 반복자의 깊이를 반환합니다.
예를 들어, 다음과 같이 사용할 수 있습니다.
#hostingforum.kr
php
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator('/path/to/directory'), RecursiveIteratorIterator::SELF_FIRST);
$iterator->setMaxDepth(5);
while ($iterator->valid()) {
echo $iterator->getDepth() . "n";
$iterator->next();
}
이 코드는 '/path/to/directory' 디렉토리와 그 아래의 디렉토리들 중에서 최대 깊이가 5인 디렉토리들만 탐색합니다.
2025-06-25 16:45