PHP碎码——删除除指定文件的其他文件及目录

<?php

header(‘content-type:text/html;charset=utf-8‘);

$path = iconv("utf-8", "gb2312", ‘C:/MyServer/www/PHP05/day06/2016/‘);

delete_dir($path);

/**
参数必须为目录,中文亦可
删除目录下--除指定文件或包涵置顶文件的目录其他目录和文件
*/
function delete_dir($path){

    // 返回一个 array,包含有目录中的文件和目录
    $arr = scandir($path);
    //echo ‘<pre>‘;
  // var_dump($arr);
    // 遍历目录下的每个子项(包括文件,目录,. ,..)
    foreach ($arr as $value) {

        // 若名字为.或者..的直接跳过
        if($value == ‘.‘ || $value == ‘..‘){
            continue;
        }

        // 当前目录路径与 该目录下子项分别拼接
        $in_path = $path.$value;

        // 判断是文件或者目录
        if (is_dir($in_path)) {

            // 在目录路径尾部追加 /
            $in_path .= ‘/‘;

            // 递归
            delete_dir($in_path);

            // 判断该目录是否为空
            if(count(scandir($path)) == 2){
                rmdir($in_path);
            }

        } else {
            
            // 判断文件名是否为指定的名字,若不是,直接删除
            if(basename($in_path) != iconv("UTF-8", "gb2312", "abc - 副本.txt")){

                // 删除文件
                unlink($in_path);

            }

        }

    }

}

?>

代码稍作修改可用于,搜索指定文件,提取指定文件,统计文件等等需要遍历目录的需求

转战PHP,愿我能走的更远

时间: 2024-08-25 20:33:56

PHP碎码——删除除指定文件的其他文件及目录的相关文章

批处理 批量删除当前目录及子目录下多个指定的扩展名文件

批量删除当前目录及子目录下任意指定的扩展名文件 今编译DEV的语言文件,各种语言文件不需要,只保留中文的语言文件,写个批处理也方便以后使用 1 @echo off 2 set Path=%CD% 3 cd /d Path 4 del /f/s/q/a *.tlog 5 del /f/s/q/a *.cache 6 del /f/s/q/a *.txt 7 del /f/s/q/a *.pdb 8 del /f/s/q/a *.resources 9 del /f/s/q/a *.vspscc 1

批量删除本地指定扩展名文件工具

VC工具在编译时,会生成大量临时文件,占用很多空间,项目多了,手动删除就会很费力,所以我做了个小工具,可以批量删除指定目录,指定扩展名的文件. 此工具根据配置文件指定的扩展名删除文件,一般我删除VC的扩展名为:.ipch.pdb.pch.sdf.tlog.obj.idb.ilk.res.根据需要,自行配置. 下载地址:http://download.csdn.net/detail/yxstars/8201833 下面是一些vc扩展名的含义: .APS:存放二进制资源的中间文件,VC把当前资源文件

如何删除PDF文档中指定的一页文件?

又是在在查看PDF格式文件的时候会发现文件中有一页文件不符合要求,这个时候我们正常的决定是把该页面进行删除,但是因为PDF文件比较特殊,那么如何才能删除PDF文件中指定的文件页面呢? 1.将捷速PDF编辑器下载到电脑上后,我们运行这款软件,然后点击软件界面里的"打开"选项,将需要编辑的PDF文件打开. 2.打开PDF文件之后,我们需要点击界面里的"文档"按钮,然后点击里面的"删除页面"功能,进行指定页面删除操作. 3.打开删除页面界面后,点击里面

【linux】find删除指定时间之前的文件

今天磁盘满了,想删掉一些老的日志文件.开始想写个python脚本,转念一想,可能shell脚本好点.结果发现,根本不用写脚本,一个find指令就可以解决问题了. 先上指令 find . -type f -name *.log -mtime +180 -exec rm {} \; 解析: find 后面紧跟的是要查找的目录,. 表示当前目录 -type f:指定查找对象为文件 -name *.log:指定查找对象名称以.log结尾 -mtime +180: 查找180天以前的老文件 -exec r

按创建日期删除指定日期之前的文件夹及文件夹下的所有子目录

转载void CTestDlg::DeleteDirectory(CString strDir) { if(strDir.IsEmpty()) return; //首先删除文件及子文件夹 CFileFind ff; BOOL bFound = ff.FindFile(strDir+"\\*", 0); while(bFound) { bFound = ff.FindNextFile(); CString filename = ff.GetFileName(); if(filename=

删除 除 指定文件外 的 其他文件

1.grep 运用grep时,应该先查看当前的文件或文件夹,得到现存的文件内文本或文件名都有哪些,然后再用grep命令 1 less Os.fa |grep -v >Os > File2 2 3 rm 'ls |grep -v "fileOs" ' 2.rm rm 删除除指定文件外的其他文件,需要使用!来做非匹配.然而,这就需要开启extglob选项,开启之后Shell可以另外识别出5个模式匹配操作符,能使文件匹配更加方便. 使用shopt命令开启 1 shopt -s e

linux shell 脚本 历史文件清理脚本,按天,按月,清理前N天的历史文件,删除指定大小历史文件,历史文件归档清理

不知道大家那有没有要清理的这个事情.需要清理目录历史文件.可能后续也会有很多其他地方需要清理历史文件,可能会用到. 我这两天空闲写了个脚本,清理比较方便,有要进行清理的大量历史文件的话可以用. 脚本用到的命令只有linux才有,像solaris等就不支持,所以只能在linux上运行.如果是nas存储的话,可以挂载到一个linux主机上跑脚本清理. 另外,脚本查找文件用的是ls,但是ls也有最大文件的限度(大概10w以内),如果每天文件很多,每天都是10w+的,运行可能提示文件数过多无法ls. 还

Solr4.8.0源码分析(8)之Lucene的索引文件(1)

Solr4.8.0源码分析(8)之Lucene的索引文件(1) 题记:最近有幸看到觉先大神的Lucene的博客,感觉自己之前学习的以及工作的太为肤浅,所以决定先跟随觉先大神的博客学习下Lucene的原理.由于觉先大神主要介绍的是Lucene3.X系的,那我就根据源码以及结合觉先大神的来学习下4.X系的.内容可能会有些变化,且加入下我个人的理解. http://www.cnblogs.com/forfuture1978/archive/2009/12/14/1623597.html 一. 基本类型

apache FtpClient上传下载删除文件夹及文件

/* * 文件名:FtpUtil.java * 描述:FTP操作 * 修改时间2014-08-10 */ import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.text.SimpleDateFormat; import jav