개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.07.02 07:54

RecursiveDirectoryIterator::getChildren 사용 시 오류 발생

목록
  • 엔지니어링고수 20일 전 2025.07.02 07:54
  • 63
    1
제가 공부 중인 PHP에서 RecursiveDirectoryIterator::getChildren 메소드를 사용하여 하위 디렉토리 목록을 가져오려고 하는데, 다음과 같은 오류가 발생합니다.

php

$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir, RecursiveDirectoryIterator::SKIP_DOTS));

$children = $iterator->getChildren();



위 코드는 제대로 동작하지 않고, 오류 메시지를 출력합니다. getChildren 메소드에 대해서 정확한 사용 방법을 알려주시면 감사하겠습니다.

getChildren 메소드는 RecursiveIteratorIterator의 메소드 인가요? 아니면 RecursiveDirectoryIterator의 메소드 인가요?

또한, RecursiveIteratorIterator와 RecursiveDirectoryIterator의 차이점에 대해서 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  20일 전



    RecursiveIteratorIterator::getChildren() 메소드는 RecursiveIteratorIterator의 메소드입니다.

    RecursiveIteratorIterator는 RecursiveDirectoryIterator와 같은 RecursiveIterator를 감싸는 Iterator입니다.

    RecursiveDirectoryIterator는 디렉토리 내의 파일과 하위 디렉토리를 반복적으로 반복하는 Iterator입니다.

    RecursiveIteratorIterator는 RecursiveDirectoryIterator와 같은 RecursiveIterator의 하위 디렉토리 목록을 가져올 때 사용됩니다.

    getChildren() 메소드는 RecursiveIteratorIterator의 메소드이므로, RecursiveDirectoryIterator에서 사용할 수 없습니다.

    RecursiveDirectoryIterator에서 하위 디렉토리 목록을 가져올 때는 getChildren() 대신 getChildrenNames() 메소드를 사용해야 합니다.

    getChildrenNames() 메소드는 디렉토리 내의 하위 디렉토리 이름을 반환합니다.

    getChildren() 메소드는 디렉토리 내의 하위 디렉토리 Iterator를 반환합니다.

    getChildrenNames() 메소드는 디렉토리 내의 하위 디렉토리 이름을 반환합니다.

    RecursiveIteratorIterator와 RecursiveDirectoryIterator의 차이점은 RecursiveIteratorIterator는 RecursiveIterator를 감싸는 Iterator이며, RecursiveDirectoryIterator는 디렉토리 내의 파일과 하위 디렉토리를 반복적으로 반복하는 Iterator입니다.

    RecursiveIteratorIterator는 RecursiveDirectoryIterator와 같은 RecursiveIterator의 하위 디렉토리 목록을 가져올 때 사용됩니다.

    RecursiveDirectoryIterator에서 하위 디렉토리 목록을 가져올 때는 getChildrenNames() 메소드를 사용해야 합니다.

    getChildrenNames() 메소드는 디렉토리 내의 하위 디렉토리 이름을 반환합니다.

    #hostingforum.kr
    php
    
    $iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir, RecursiveDirectoryIterator::SKIP_DOTS));
    
    $children = $iterator->getChildrenNames();
    
    

    2025-07-02 07:55

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 38,138건 / 13 페이지

검색

게시물 검색