How do I exclude hidden folders and files from readdir?

8.4k views Asked by At

Is it possible to exclude hidden files and folders from the readdir() function? I have a directory where there are many folders and some hidden folders. I want to read all folders except the hidden ones.

Thanks for any help.

Kcssm

4

There are 4 answers

0
arnorhs On BEST ANSWER

If you just want to exclude files starting with a dot, ".", you can do something like this:

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

This will only return files that don't start with dot "."

On windows, hidden files work differently, I don't know how to find those out.

0
KomarSerjio On

Use SPL iterators: DirectoryIterator + FilterIterator.

0
Umesh Patil On

You could also use scandir with preg_grep to hide all files and folders starting with a ".". Please refer below code,

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

print_r($files);

?>
0
shihabudheen On

You can exclude files and folders which starting "." by using following code

$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>";
      }
   }
 }