
streamWrapper::dir_rewinddir 함수는 디렉토리 내의 파일 목록을 초기화하는 함수로, 이전 목록을 유지하는 것은 이 함수의 기본 기능이 아니라고 생각합니다. 따라서 디렉토리 내의 파일 목록이 변경되어도 이전 목록을 유지하도록 하려면 어떻게 해야 할까요?
이 문제를 해결하기 위해서는 디렉토리 내의 파일 목록을 저장하는 별도의 변수를 생성하고, streamWrapper::dir_rewinddir 함수를 호출하기 전에 이전 목록을 저장한 변수를 읽어와서 목록을 초기화하는 방법을 사용할 수 있습니다.
예를 들어, 다음과 같이 코드를 작성할 수 있습니다.
#hostingforum.kr
php
$directory = '/path/to/directory';
$previousFiles = array();
// 디렉토리 내의 파일 목록을 읽어와서 저장
$files = scandir($directory);
$previousFiles = $files;
// streamWrapper::dir_rewinddir 함수를 호출하기 전에 이전 목록을 저장한 변수를 읽어와서 목록을 초기화
streamWrapper::dir_rewinddir($directory);
// 디렉토리 내의 파일 목록을 반복적으로 읽어야 하는 상황
while ($file = readdir($directory)) {
// 이전 목록을 유지하기 위해 이전 목록과 현재 목록을 비교
if (in_array($file, $previousFiles)) {
// 이전 목록에 포함된 파일은 목록에서 제외
$previousFiles = array_diff($previousFiles, [$file]);
} else {
// 이전 목록에 포함되지 않은 파일은 목록에 추가
$previousFiles[] = $file;
}
}
이 코드는 디렉토리 내의 파일 목록을 반복적으로 읽어야 하는 상황에서, 디렉토리 내의 파일 목록이 변경되어도 이전 목록을 유지하도록 하기 위해 streamWrapper::dir_rewinddir 함수를 사용하는 방법을 설명합니다.
2025-03-20 21:04