Posted in PHP onAugust 21, 2010
注:visitFile()有少量修改
<? // 查看指定文件夹的文件 $fileList = array(); function visitFile($path) { global $fileList; $path = str_replace("\\", "/", $path); $fdir = dir($path); while (($file = $fdir->read()) !== false) { if($file == '.' || $file == '..'){ continue; } $pathSub = preg_replace("*/{2,}*", "/", $path."/".$file); // 替换多个反斜杠 $fileList[] = is_dir($pathSub) ? $pathSub."/" : $pathSub; if(is_dir($pathSub)){ visitFile($pathSub); } } $fdir->close(); return $fileList; } ?> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <form method="get"> <? $path = str_replace("\\", "/", $path); $path = preg_replace("*/{2,}*", "/", $path); ?> 路径:<input type="text" name="path" id="path" value="<?=$path;?>"/><br> <li>磁盘根目录 /</li> <li>网络本地 ./phpMyAdmin</li> <li>本地磁盘 file://C: 或者 C:</li> <br> <input name="action" type="submit" id="action" value="view" /> <input name="action" type="submit" id="action" value="delete" onclick="if(!confirm('是否删除 '+path.value+' 的所有子文件夹和子文件?')) return false;" /> </form> <? if(!empty($path)){ $path = preg_replace("*/{2,}*", "/", $path); $files = visitFile($path); switch(strtolower($_GET["action"])) { case "view": foreach($files as $key => $value) { printf("No.%4d·%s<br>\r\n", $key+1, $value); } break; case "delete": $faileFiles = array(); foreach(array_reverse($files) as $value) { if(!unlink($value)) { array_push($faileFiles, $value); } } if(!unlink($path)) { array_push($faileFiles, $path); } if(count($faileFiles) > 0) { printf("<br><br>删除失败文件(%d):<p>\r\n", count($faileFiles)); foreach( $faileFiles as $key => $value) { printf("No.%4d·%s<br>\r\n", $key+1, $value); } } break; } } ?>
php visitFile()遍历指定文件夹函数
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@