Как исключить скрытые папки и файлы из readdir?

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

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

Ксссм


person kcssm    schedule 11.02.2011    source источник
comment
Каким образом скрыто на какой платформе? Винда или линукс?   -  person Pekka    schedule 11.02.2011


Ответы (3)


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

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

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

В винде скрытые файлы работают по другому, не знаю как их узнать.

person arnorhs    schedule 11.02.2011

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

person KomarSerjio    schedule 11.02.2011

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

$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>";
      }
   }
 }
person shihabudheen    schedule 31.01.2013