Mam iterator katalogu rekurencyjnego do wybierania plików z katalogu. SKIP_DOTS pozwala mi zignorować "." a „..” elementy, ale chciałbym, aby móc również ignorować katalogu «__MACOSX», a drugim inne ukryte pliki, takie jak „.cache.php”PHP Recursive Directory Iterator - ignoruje określone pliki.
$iterator = new RecursiveDirectoryIterator($directory);
$iterator->setFlags(RecursiveDirectoryIterator::SKIP_DOTS);
$all_files = new RecursiveIteratorIterator($iterator);
istnieją inne odpowiedzi here ale i here zastanawiałeś się, czy istnieje czystszy sposób?
Miałem nadzieję, że będzie coś w PHP Manual - FilesystemIterator SetFlags, ale wygląda na to, że nie.
Dlaczego pan nadzieję na coś wbudowaną? Czy nieuzasadnione jest oczekiwanie, że ktoś napisze kilka linijek kodu, gdy mają specjalne wymagania? W systemach Windows często widzisz specjalne pliki 'desktop.ini' i' Thumbs.db', czy powinna na nich być specjalna flaga? – Jon
Może to pomoże: http://stackoverflow.com/questions/12454114/exclude-folders-from-recursion-in-recursive-directory-iterator-php –
@Jon Widzę twoją sprawę, ale dlaczego warto uwzględnić "RecursiveDirectoryIterator :: SKIP_DOTS ", jeśli nie, aby pomóc w typowych przypadkach użycia? – Kiksy