zoukankan      html  css  js  c++  java
  • 遍历目录,重命名目录下的文件

    下了个教程,但是没有字幕,找到外挂字幕,但是由于名字不一样,但是又有规律(0101 **** 替换成 01 01. ***),不想手动重命名,就写了个函数来批量重命名。这里写成class纯粹是多此一举,懒得改了,下面上代码,没注释,因为简单

     <?php 

    class RenameSRT {
        public function traverse($dir) {
            if (is_dir($dir)) {
                $handle = dir($dir);
                if ($handle) {
                    while (FALSE !== ($file = $handle->read())) {
                if ($file != '.' && $file != '..') {
                    $this->traverse($dir.'\\'.$file);
                }
              }
                } else {
                    echo '打开目录失败<br />';
                }
                $handle->close();
            }//echo $dir.'************';
           if (is_file($dir)) {
               $fileName = $this->getFileName($dir);
               $filePath = $this->getFilePath($dir);
               $fileType = substr($fileName, strrpos($fileName, '.')+1);
               //echo $fileType.'<br />';
               if ($fileType == 'srt') {
                 $fileReadName =  $this->getRename($fileName);
               }
           //    echo '**********'.$filePath.'\\'.$fileReadName.'************';
               if (rename($dir, ($filePath.'\\'.$fileReadName))) {
                   echo '重命名成功'.'<br />';
               }else {
                   echo '重命名失败'.'<br />';
               }
           }else {
               //echo "$dir.<br />";
           }
        }
        
        private function getFileName($filePath) {
            return basename($filePath);
        }
        
        private function getFilePath($filePath) {
            return dirname($filePath);
        }
        
        private function getRename($fileName) {
            //echo $fileName.'<br />';
            $tem = substr($fileName, 0, 4);
            //echo $tem.'<br/>';
            $replace = $tem[0].$tem[1].' '.$tem[2].$tem[3].'.';
            $tem = substr_replace($tem, $replace, 0);
            //echo $replace.'<br />';
            //echo $tem.'<br/>';
            $fileName = substr_replace($fileName, $replace , 0, 4);
            //echo $fileName.'<br />';
            return $fileName;
        }
        
        
    }

    $renamesrt = new RenameSRT();
    $renamesrt->traverse('C:\meterial\PHP');

    这里最重要的是要文件名要有规律,然后$tem按照规律的到字符串,剩下的就是substr_replace,然后rename();

  • 相关阅读:
    Kubernetes(十一) 部署doshboard
    kubernetes(一)kubeadm安装
    kubernetes安装-二进制
    使用Jmeter+Maven+Jenkins实现接口自动化测试
    使用Jmeter在linux环境实现分布式负载
    Jmeter连接Mysql和Oracle数据库
    Jmeter如何实现参数化用户,并且管理Cookie
    开启MYSQL慢查询日志,监控有效率问题的SQL
    使用jmeter+ant+jenkins实现接口自动化测试
    使用Jmeter对SHA1加密接口进行性能测试
  • 原文地址:https://www.cnblogs.com/hui314/p/php_file_rename.html
Copyright © 2011-2022 走看看