
FilesystemIterator::setFlags 함수의 첫 번째 인자인 flags 변수는 FilesystemIterator::SKIP_DOTS을 설정할 수 있습니다. 이 경우, 디렉토리와 파일의 목록에서 \".\" 과 \"..\"은 제외되지 않습니다.
FilesystemIterator::SKIP_DOTS은 디렉토리 이름이 '.' 또는 '..' 인 항목을 무시하는 것입니다. 예를 들어, 디렉토리 구조가 다음과 같을 때,
- dir/
- file1.txt
- file2.txt
- ./
- ../
FilesystemIterator::SKIP_DOTS을 설정하면 dir/ 디렉토리와 그 안에 있는 file1.txt, file2.txt만 목록에 나타납니다. '.'과 '..'은 목록에 나타나지 않습니다.
따라서, 디렉토리와 파일의 목록에서 '.'과 '..'을 제외하려면 FilesystemIterator::SKIP_DOTS을 설정하는 것이 아닙니다. 대신, 디렉토리 구조를 조작하여 '.'과 '..'을 제거하는 방법을 사용해야 합니다.
예를 들어, PHP의 RecursiveDirectoryIterator를 사용하여 디렉토리 구조를 조작할 수 있습니다.
#hostingforum.kr
php
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator('/path/to/dir', FilesystemIterator::SKIP_DOTS));
foreach ($iterator as $file) {
echo $file->getFilename() . "n";
}
이 코드는 '/path/to/dir' 디렉토리와 그 안에 있는 파일과 디렉토리의 목록을 출력합니다. '.'과 '..'은 목록에 나타나지 않습니다.
2025-05-21 23:08