php visitFile()遍历指定文件夹函数_php技巧

注: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;
}
}
?>

时间: 2024-08-02 12:55:07

php visitFile()遍历指定文件夹函数_php技巧的相关文章

PHP递归遍历指定文件夹内的文件实现方法

今天早上在地铁上看了关于文件和文件夹的一章,正好最近刚搞懂linux的文件系统,觉得对文件属性的访问跟Shell命令很像,所以想晚上来实践一下. 发现php的文件夹函数好像没有提供遍历文件夹下的所有文件(包括子目录中的文件),于是,就想自己实现一个. 在写的时候发现一些操作文件夹的函数并不是自己想的那样.比如,dirname()根据提供的完整文件路径来取得文件所在的文件夹的路径,但如果你传入的是文件夹,它取的就是它的父文件夹.这点要明白.basename()也是同样的道理,传入文件夹路径取得就是

遍历指定文件夹下所有的xml文件并动态生成HTML页面!

xml|遍历|动态|生成html|页面 ++++++++++++++++++++++++++++功能:遍历指定文件夹下所有的xml文件并动态生成HTML页面!++++++++++++++++++++++++++++using System;using System.Collections;using System.ComponentModel;using System.Data;using System.Drawing;using System.Web;using System.Web.Sess

PHP遍历指定文件夹下的所有文件

PHP遍历指定文件夹下的所有文件,如下代码: <?php   session_start();  if($Submit=="提交"){   $shili=$file_dir;  }  ?>  <html>  <head>  <meta http-equiv="Content-Type" content="text/html; charset=gb2312">  <title>遍历指定目录

C#简单遍历指定文件夹中所有文件的方法_C#教程

本文实例讲述了C#简单遍历指定文件夹中所有文件的方法.分享给大家供大家参考,具体如下: C#遍历指定文件夹中的所有文件: DirectoryInfo TheFolder=new DirectoryInfo(folderFullName); //遍历文件夹 foreach(DirectoryInfo NextFolder in TheFolder.GetDirectories()) this.listBox1.Items.Add(NextFolder.Name); //遍历文件 foreach(F

php递归遍历删除文件的方法_php技巧

本文实例讲述了php递归遍历删除文件的方法.分享给大家供大家参考.具体如下: 这个函数稍加修改就可以变成一个递归文件拷贝函数 <?php function mover($src,$dst) { $handle=opendir($src); // Opens source dir. if (!is_dir($dst)) mkdir($dst,0755); // Make dest dir. while ($file = readdir($handle)) { if (($file!=".&q

php下实现在指定目录搜索指定类型文件的函数_php技巧

复制代码 代码如下: function bdir($dir,$typearr){ $ndir = scandir($dir); foreach ($ndir as $k => $v){ if ($v == '.' || $v == '..'){ continue; } if (filetype($dir.$v) == 'file'){ $arr = explode('.',$v); $type = end($arr); if (in_array($type,$typearr)){ echo $d

php Rename 更改文件、文件夹名称_php技巧

命令格式为: bool rename ( string oldname, string newname [, resource context] ) 下面演示rename的具体应用: 文件位置如图:目的:1.把cache.txt 更名为rename.txt; 2.将cache2.txt更名为cache3.txt 3.将html目录 更名为 cache 4.将file目录转移到html目录下(可以实现更名) 代码实现(有错误): 复制代码 代码如下: <?php $file = "html/

php 文件缓存函数_php技巧

复制代码 代码如下: function createHashDir($sign) { $md5 = md5($sign); if(!is_dir(MB_CACHE)) mkdir(MB_CACHE); for($i=1;$i<=4;$i++) { $dir .= $md5{$i}.'/'; if(!is_dir(MB_CACHE.$dir)) { mkdir(MB_CACHE.$dir); } } return MB_CACHE.$dir; } function setCacheFile($da

C语言实现清空指定文件夹中所有文件的方法_C 语言

本文实例讲述了C语言实现清空指定文件夹中所有文件的方法.分享给大家供大家参考.具体分析如下: 最近笔者在做一个有关计算机视觉的项目,需要对提前的视频帧进行实验,当数据量很大且文件夹中的子文件夹和文件很多时,手工删除这些文件不现实,笔者今天写了一个程序,通过机器自动删除所有相关文件,十分快速,删除时间几乎可以不计. 代码如下,仅供参考. #include "iostream.h" //代码如需调试,只需将改成""即可 #include "string.h&q