Как исключить скрытые папки и файлы из readdir? - PullRequest
1 голос
/ 11 февраля 2011

Можно ли исключить скрытые файлы и папки из функции readdir()? У меня есть каталог, где есть много папок и несколько скрытых папок. Я хочу прочитать все папки, кроме скрытых.

Спасибо за любую помощь.

Kcssm

Ответы [ 4 ]

3 голосов
/ 11 февраля 2011

Если вы просто хотите исключить файлы, начинающиеся с точки ".", Вы можете сделать что-то вроде этого:

$files = readdir('/path/to/folder');
$files = array_filter($files, create_function('$a','return ($a[0]!=".");'));

Это вернет только файлы, которые не начинаются с точки "."

В Windows скрытые файлы работают по-разному, я не знаю, как их найти.

2 голосов
/ 31 января 2013

Вы можете исключить файлы и папки, которые начинаются с "." используя следующий код

$ignoreList = array('cgi-bin', '.', '..', '._');
   if ($directory = opendir(APPPATH . 'controllers/user')) {
  while (false !== ($filename = readdir($directory))) {
    if (!in_array($filename, $ignoreList) and substr($filename, 0, 1) != '.') {
         echo $filename."<br>";
      }
   }
 }
2 голосов
/ 11 февраля 2011

Использовать итераторы SPL: DirectoryIterator + FilterIterator .

0 голосов
/ 06 августа 2015

Вы также можете использовать scandir с preg_grep, чтобы скрыть все файлы и папки, начинающиеся с «.».Пожалуйста, обратитесь ниже код,

$dir    = '/Users/Umesh/Sites/';
$files = preg_grep('/^([^.])/', scandir($dir));

print_r($files);

?>
...