首页 / PHP / php-计算每个文件夹中的文件
php-计算每个文件夹中的文件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php-计算每个文件夹中的文件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2392字,纯文字阅读大概需要4分钟。
内容图文
![php-计算每个文件夹中的文件](/upload/InfoBanner/zyjiaocheng/679/55b02e8f3be04ba9b8b119ec527b1ad9.jpg)
我试图计算每个子文件夹中的文件数.例如
第一个子文件夹:4个文件
第二子文件夹:6个文件
…
现在,我的函数对我在数组中选择的目录中的文件进行计数:
if (!is_dir($subentry) && $gallery_dir[0]) {
如何计算和列出每个子目录中的文件数?但是不是所有子目录中元素的总和,而是每个子目录中的元素从0开始计数.
这是我到目前为止尝试过的:
$folderCount = $fileCount = $galleryItemCount = 0;
$dir ='./product_img/';
//. means current directory
//if you wanna a learn a folders inside use opendir('path')
$gallery_dir = array();
$gallery_subdir = array();
if ($handle = opendir($dir)) {
while (false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != "..") {
if (is_dir($dir.$entry)) {
echo "Folder => " . $entry . "<br>";
$gallery_dir[] = $entry;
if ($subdir = opendir($dir.$entry)) {
while (false !== ($subentry = readdir($subdir))) {
if ($subentry != "." && $subentry != "..") {
if (!is_dir($subentry) && $gallery_dir[0]) {
echo "Folderrrr => " . $subentry . "<br>";
$gallery_subdir[] = $subentry;
$galleryItemCount++;
echo $gallery_dir;
}
}
}
closedir($subdir);
}
$folderCount++;
} else {
echo "File => " . $entry . "<br>";
$fileCount++;
}
}
}
//echo $galleryItemCount++;
echo "<br><br>";
echo "File in aech folder" . $galleryItemCount. "<br />";
echo "Total Folder Count : " . $folderCount . "<br>" ;
echo "Total File Count : " . $fileCount;
closedir($handle);
}
解决方法:
您可以使用迭代器来做到这一点.但是,获取每个文件夹的文件计数有些棘手.
首先,连接迭代器.通过您要遍历的路径:
$iterator = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator(
'/path/you/want/to/traverse',
RecursiveDirectoryIterator::SKIP_DOTS
),
RecursiveIteratorIterator::SELF_FIRST
);
选项SKIP_DOTS将使RecursiveDirectoryIterator忽略.并且…要包含目录,必须使用选项SELF_FIRST.默认情况下,仅离开,例如文件.
连接Iterator之后,您只需要
foreach ($iterator as $fileObject) {
if ($fileObject->isDir()) {
$fileObject->setInfoClass(FilesystemIterator::class);
$directoryIterator = $fileObject->getFileInfo();
$directoryIterator->setFlags(FilesystemIterator::SKIP_DOTS);
$fileCount = iterator_count($directoryIterator);
echo "$fileObject => $fileCount", PHP_EOL;
}
}
这将打印每个文件夹名称以及每个文件夹中的文件计数.就像我说的那样,获取文件计数有些棘手.这是因为默认情况下,foreach将返回目录的SplFileObject实例.那些是不可数的.因此,我们需要设置FileSystemIterator.这可以算.
注意:如果您的PHP版本尚不支持FilesystemIterator :: class,请更新至最新版本或将’FileSystemIterator’作为字符串传递.
内容总结
以上是互联网集市为您收集整理的php-计算每个文件夹中的文件全部内容,希望文章能够帮你解决php-计算每个文件夹中的文件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。