1

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

谢谢你的帮助。

Kcssm

4

4 回答 4

5

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

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

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

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

于 2011-02-11T10:04:32.923 回答
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>";
      }
   }
 }
于 2013-01-31T13:19:23.037 回答
1

使用 SPL 迭代器:DirectoryIterator + FilterIterator

于 2011-02-11T10:02:22.803 回答
0

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

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

print_r($files);

?>
于 2015-08-06T06:08:37.857 回答