如何从readdir中排除隐藏的文件夹和文件?

时间:2011-02-11 09:56:13

标签: php readdir hidden-files

是否可以从readdir()功能中排除隐藏文件和文件夹?我有一个目录,其中有许多文件夹和一些隐藏文件夹。我想阅读除隐藏文件夹以外的所有文件夹。

感谢您的帮助。

Kcssm

4 个答案:

答案 0 :(得分:3)

如果您只想排除以点开头的文件“。”,您可以执行以下操作:

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

这只会返回不以点“。”开头的文件。

在Windows上,隐藏文件的工作方式不同,我不知道如何找到它们。

答案 1 :(得分:2)

使用SPL迭代器:DirectoryIterator + FilterIterator

答案 2 :(得分:2)

您可以排除以“。”开头的文件和文件夹。使用以下代码

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

答案 3 :(得分:0)

你也可以使用scandir和preg_grep来隐藏所有以“。”开头的文件和文件夹。请参考下面的代码,     

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

print_r($files);

?>