是否可以从readdir()
功能中排除隐藏文件和文件夹?我有一个目录,其中有许多文件夹和一些隐藏文件夹。我想阅读除隐藏文件夹以外的所有文件夹。
感谢您的帮助。
Kcssm
答案 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);
?>