[英]Count files and subfolders in directory
大家好,我需要一个脚本,它可以计算所有文件,文件夹及其子文件夹等。
因此,我尝试了2个脚本,但是每个脚本都返回不同的值。 示例:脚本1:2376脚本2:2178
这是我的2个脚本:
$source = 'folder';
$files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($source), RecursiveIteratorIterator::SELF_FIRST);
foreach($files as $file) {
$result[] = $file.'<br />';
}
echo count($result).'<br />';
function listFolders($dir) {
if($dh = opendir($dir)) {
$files = Array();
$inner_files = Array();
while($file = readdir($dh)) {
if($file != "." && $file != "..") {
if(is_dir($dir . "/" . $file)) {
$inner_files = listFolders($dir . "/" . $file);
if(is_array($inner_files)) $files = array_merge($files, $inner_files);
} else {
array_push($files, $dir . "/" . $file);
}
}
}
closedir($dh);
return $files;
}
}
foreach (listFolders($source) as $key=>$file){
$result2[] = $file ."<br />";
}
echo count($result2);
那么,如何计算包含7000-10000个文件和子文件夹的文件夹?
最好的问候,乔治!
如果是第一个使用RecursiveIterator的示例,那么您还要计算点目录。 在第二个示例中,您将其剪切掉。
用这个:
$files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($source, FilesystemIterator::SKIP_DOTS), RecursiveIteratorIterator::CHILD_FIRST);
foreach($files as $file) {
$result[] = $file.'<br />';
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.