php如何把文件夹的目录列出来的,如何查看目录上的全部文件(包括子目录)?跪求大神帮忙...

该博客介绍了一个PHP函数,用于遍历指定路径下的文件和目录,提供详细信息如文件全路径、大小等。当在Windows系统中遇到Unicode字符时,可能存在限制。博主提供了在不列出空目录的情况下获取文件信息的实现,并提到了可选地将结果保存到CSV文件。此外,还提及了另一个解决Windows系统Unicode文件名问题的复杂方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

列出文件名

------解决方案--------------------

我自用的类里面的一个方法,你自己改一下吧

返回数组,二维的

参数说明:

$path 需要系统的绝对路径,结尾不带路径符“\”

$size =True 的时候把文件字节数也获取

$toCsv = 文件名(字符串),在返回数组结果的同时也写入到这个文件,格式为csv格式

** windows系统不能获得路径含有unicode字符的文件名,这不是程序问题,是php的问题

** 不列出空目录,只有文件,你可以参考手册给RecursiveDirectoryIterator加个参数就能得到空目录,但同时注意getsize可能会出错

public function listDir($path, $size=false, $toCsv=false)

{

if (false !== $toCsv) $newCsv = new SplFileObject($toCsv, 'wb');

$items = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path));

$arr = array();

while (list($itemName, $item) = each($items))

//foreach($dir as $itemName => $item)

{

$fileInfo = array();

$fileInfo['fullpath'] = (string)$itemName;

if ($size) $fileInfo['size'] = (string)$item->getSize();

if (false !== $toCsv) $newCsv->fputcsv($fileInfo);

$arr[] = $fileInfo;

}

return $arr;

}

我另外有一个可以获取windows unicode文件名的类方法,但相当麻烦,就不贴了

------解决方案--------------------

function show($dir)

{

echo "{$dir}

";

$dir = realpath($dir) .'/*';

foreach(glob($dir, GLOB_MARK) as $f){

if( substr($f, -5) === '.html' ){

$f = "{$f}";

}

echo $f ."

".PHP_EOL;

if(is_dir($f)){

show($f);

相关文章

相关视频

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值