zoukankan      html  css  js  c++  java
  • 一段小代码

    <?php
    
    echo "<pre>";
    
    //定义想要删除视频的目录
    $path = str_replace('\', '/', 'F:programutorrent2.02downloads');
    
    //更改工作路径
    chdir($path);
    
    /**function name:del;
     *@param path, delete root directory;
     *@param depth, (递归深度)
     */
    function del($path,$depth = 0){
        //打开目录,获得文件句柄
        $dir_handle = opendir($path);
        //开始遍历
        while (false !== $file = readdir($dir_handle)) {
            //忽略‘.’跟‘..’
            if ($file == '.' || $file == '..') {
                continue;
            }
            //判断当前文件是否为一个目录,是则递归
            if (is_dir($path.'/'.$file)) {
    
                del($path.'/'.$file,$depth + 1);
    
            }else{
                //不是一个文件则判断是否为视频
                if (strstr($file,'.itcast') || strstr($file,'.avi') || strstr($file,'.mp4')) {
                //转换绝对路径字符编码(不含文件名)
                    @$path = iconv('utf-8','gbk',$path);
                //拼凑出文件完整的绝对路径        
                    $video = $path.'/'.$file;
                //删除
                    @unlink($video);
    
                }
            }
            //判断是否为视频文件夹
            if($file == 'video' || $file == 'vedio'){
                //是则删除
                @rmdir($path.'/'.$file);
            }
            //输出文件名
            echo str_repeat('-', $depth * 5),$file,"<br />";        
        }
    }
    
    //调用函数
    del($path);

      前两天看着F盘快要爆盘了,就想着把它清理一下,把传智的视频都删掉,忽然想起来我学过的递归遍历目录,还有删除文件和文件夹,那么我也可以试一下递归删除视频啊~

      好,想到就马上行动,我首先把递归遍历目录的函数写了出来,然后因为怕发生一些不可预料的错误,就另外写一个小脚本尝试单独的删除一个视频,但由于视频名称是中文的,不能删,我到网上查资料,发现需要用到一个编码转换函数iconv(),然后就成功了。之后我在递归函数里面删除,发现系统分别爆了两个错误,说我iconv()和unlink()都使用不正确。我调试了好多次都不行。到了今天晚上,我询问了辅导员,原来出错的原因是我先把文件的路径先拼凑好再去转换编码,但由于目录(utf-8)和中文文件名(gbk)使用的编码不一样,所以iconv()转换不成功。最后的解决方案就是先把目录转换为gbk,再和中文文件名拼凑一起,就可以了。

      然后我想起了一句话:伟大的程序员都懒惰。

  • 相关阅读:
    C#读取系统信息
    C# 读取驱动器盘符及信息
    for循环里的break,continue和return有什么差别
    monkey
    ZXing
    python中os模块的常用接口和异常中Exception的运用
    python中的字典应用实例
    python中的列表和字典
    python中如何单独测试一个函数的作用
    数据挖掘概念与技术PDF
  • 原文地址:https://www.cnblogs.com/trustme326/p/6193286.html
Copyright © 2011-2022 走看看