利用php实现文件迁移重命名

  首先表明,这是一个悲伤的故事。  

  暑假来临,学校安排我们到某软件外包公司实习,想想不用面试也是蛮方便的,可以借此机会向大牛学习学习,虽然没有工资(据说学校还交了600块的保险),但想想还是蛮期待的,但真正到公司就懵逼了~技术人员都不在好不好!职位都安排好了,什么人力资源,经营管理,还有财务管理之类,做培训的,但没有一个写代码的啊!

  我被分到了经营管理部门,每天接触的是各种合同审批,合同扫描,合同盖章,合同...  总之围着合同团团转,打杂远远多于学习。想想如果没有我们那些公司的人也要处理如此重复无聊的工作,真是让我对工作有点抗拒了。

  不闲扯了,我遇到了这么一个问题。公司合同文本在存档前都要扫描到计算机上然后上传到公司系统。 所有扫描完的合同都存在一个文件夹里,当初扫描时为了方便统一命名为

"CD+年份+月份+合同编号.pdf";例如15年7月的第10份合同命名为“CD1507010.pdf”。每个月合同大概有300份左右。为了上传到系统,有两种方法,一种是一份一份上传到系统,一种是在本地重命名好打包发送到系统。 手工操作的话,无论哪一种都耗时在一个小时以上。如此重复无聊的工作,简直让人奔溃。对于第一种方法,由于不了解系统,我没有做更多深究,我着重考虑第二种方法。在本地重命名规则是将原来的pdf文件放置在"文件名+C"的文件夹下,并且重命名为HTWB.pdf

  本着重复工作尽量交给计算机去做的原则,我考虑用自己所学的php语言来解决问题。(不知道其他语言是否更加高效,但这明显要比纯手工更高效)。

  公司电脑配置为win7系统,虽说是一家软件公司,但是非研发部门的计算机水平和一般公司的无异。考虑到操作人员的计算机相关知识,也考虑到实现的便捷性,我没有安装Apache服务器甚至也没有启动Windows自带的IIS,直接利用命令行进行操作。

  名为htzy.php的脚本如下:

<?php 

$path=dirname(__FILE__);
$handle=opendir($path);

while (!($item=readdir($handle))==false) {
    if ($item!=‘.‘&&$item!=‘..‘&&$item!=‘htzy.php‘) {

        $arr=explode(‘.‘, $item);
        $dirname=$arr[0].‘C‘;
        mkdir($path.‘/‘.$dirname);
        rename($path.‘/‘.$item,$path.‘/‘.$dirname.‘/HTWB.pdf‘ );
    }
}

unlink(‘./htzy.php‘);
 ?>

  将此文件放置在要处理的文件夹下,在文件夹打开命令行窗口,输入

      php -f htzy.php

   稍等几秒就好。  

简单利用  mkdir()  rename()函数完成文件转移,最后利用unlink删除脚本,所以,要重复利用此脚本的话需要保存好它~

   至此,文件迁移重命名完成。

     Knowledge is power~

时间: 2024-09-29 22:35:33

利用php实现文件迁移重命名的相关文章

iOS 创建文件夹,删除文件夹,对文件夹重命名的操作

iOS 创建文件夹,删除文件夹,对文件夹重命名的操作 by 伍雪颖 + (void)createFolder:(NSString *)folderName { NSString *imageDir = [NSString stringWithFormat:@"%@/Documents/%@", NSHomeDirectory(),folderName]; NSLog(@"HomeDir: %@",imageDir); BOOL isDir = NO; NSFileM

Linux查找多个类似但是不同名的文件并且重命名

这个题目据说是百度一面的面试题,Linux题:查找以core.1,core.2....形式命名的文件,然后将这些文件名改成bak.core.1,bak.core.2,...... 首先应该找到这些文件,使用 find . -name "core.[0-9]" -print   ,可以找到: find的使用方法: 1.命令格式: find pathname -options [-print -exec -ok ...] 2.命令功能: 用于在文件树种查找文件,并作出相应的处理 3.命令参

C#实现文件批量重命名源码下载

本文要实现的功能是 文件批量重命名,当选择一个文件夹时,通过操作可以把文件夹下面所有文件进行重命名.建立了HoverTreeBatch项目. 然后 定义文件夹信息: DirectoryInfo _TheFolder; //这里是选择文件夹并实例化_TheFolder FileInfo[] _files=null; _files = _TheFolder.GetFiles(); 这样就得到了文件夹下所有文件信息. //加后缀 foreach (FileInfo fi in _files) { Ho

php文件夹下文件批量重命名

php文件夹下文件批量重命名 <?php header("Content-type:text/html;charset=utf-8"); $dir = __DIR__.'./color/'; $file_arr = scandir($dir); unset($file_arr[0]); unset($file_arr[1]); $file_arr = array_values($file_arr); $n = count($file_arr); for ($i = 0; $i &

lr文件下载脚本(文件参数化重命名)

http://wenku.baidu.com/link?url=6oiIadyF9eFS4VshKbfJDnxrBh2IX919ndi0JO8yoqTRNRNIpavFrZJ9LPVb-FBSfbRYINuJpUY7Q2uP_we559QV7Ri7wqm1r7EXhigBl3a 下载文件时 文件名相同会被覆盖: 以下是两种重命名文件的方法,妈蛋的函数写错了,让我整了一早上: 第一种 利用strcpy函数,随机数参数化文件名会使文件每次生成的文件名 随机带上不同的数字 strcpy(filepat

WordPress实现上传文件自动重命名

打开"wp-admin/includes/file.php"文件的第365行代码,原文是这样的: 可以看出,文件并没有自动重命名,因此我们只需要把圈起来的哪一行进行修改即可实现上传文件时自动重命名的效果,具体修改成下面这种形式: $new_file = $uploads['path'] . "/".date("YmdHis").floor(microtime()*1000).".".$ext; 这段代码的意思是以当前时间的字符

使用java对文件批量重命名

有时候从网络上下载的电视剧或者动漫,名字上都会被该网站加上前缀或者后缀,如图: 那么处女座的同学就不同意了,不行,我就是想让它按照我的习惯方式命名!但是呢,一个个修改是不是特别麻烦,如果是上百个呢?如果上千个呢?改到手抽筋都改不完啊!闲来没事写了个小程序,用来对这样统一格式的文件进行批量重命名,当然,必须是这种统一格式的命名方式,如上图所显示的那样,废话不多说,直接贴代码,简单易懂,无甚可将! public class CHBRenamer { public static void main(S

python实现对文件批量重命名(用到正则表达式和os.path模块)

# 成功实现批量文件重命名# 具体是批量截取了部分有用的数据用来重命名# 用到了正则表达式 import osimport os.pathimport re path = 'C:/Users/Administrator/Desktop/新建文件夹 (2)/讲义' #注意必须是正斜杠/,反斜杠\在python是转义字符 # 三个参数:分别返回1.父目录 2.所有文件夹名字(不含路径) 3.所有文件名字 for parent, dirnames, filenames in os.walk(path)

当git上只做文件大小写重命名的修改时,如何躲坑

一. 提交时 假设修改ABC.java为Abc.java. 1.1 如果使用git命令进行仅涉及大小写的重命名 1.1.1 设置git库为大小写敏感(不建议) $ git config core.ignorecase false 用这种方法进行重命名,用git status就可以识别出修改了,但是不推荐用这种方式,因为在更新这种修改的时候会有麻烦. 1.1.2 使用git mv命令(仅当core.ignorecase为true时可用) $ git mv ABC.java Abc.java $ g