利用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删除脚本,所以,要重复利用此脚本的话需要保存好它~
至此,文件迁移重命名完成。
后记:今天利用本方法在公司电脑上进行文件迁移时发生了灰常尴尬的一幕:不仅没有完成预定任务,还频频报错,等我再细细察看,发现真正发生迁移的是操作文件夹的上的好几层目录。 结果是可想而知的,如此一来将上几层 的某个目录下的文件文件夹进行了迁移重命名!!!万幸的是没有破坏太多的有价值的文档,也可以手工回复。
作为一个程序员必然不能容忍程序的此种背叛。 经过我细细察看,发现dirname(__FILE__)生成的竟然是实际操作了的那个文件夹。通过多次测试,发现在windows下汉字字符直接乱码,后面的部分被忽略掉了。比如C:\Users\Administrator\Desktop\桌面 这个路径通过dirname(__FILE__)生成的竟然是C:\Users\Administrator\Desktop,为了避免这种情况,将原来代码$path=dirname(__FILE__);调整为$path=dirname('./htzy.php');
今后写代码还是多留心,多测试,最重要的还是不能太自信。
利用php实现文件迁移重命名的更多相关文章
- 利用Python对文件批量重命名
由于要用到对无序的文件进行重命名,以下写了一个脚本,进行批量进行重命名. 基本格式是 i.后缀名 ( i 循环条件下的数 ) 1 #coding:utf8 2 import os; 3 4 def ...
- ASP FSO操作文件(复制文件、重命名文件、删除文件、替换字符串)
ASP FSO操作文件(复制文件.重命名文件.删除文件.替换字符串)FSO的意思是FileSystemObject,即文件系统对象.FSO对象模型包含在Scripting 类型库 (Scrrun.Dl ...
- C#实现文件批量重命名源码下载
本文要实现的功能是 文件批量重命名,当选择一个文件夹时,通过操作可以把文件夹下面所有文件进行重命名.建立了HoverTreeBatch项目. 然后 定义文件夹信息: DirectoryInfo _Th ...
- 当git上文件大小写重命名的修改时(git大小写敏感/默认不敏感),如何提交
git默认是大小写不敏感!!! 加了感叹号是什么意思呢,意思就是这本身就是一个坑,本人使用的IDE是idea(网上说Eclipse可以避开问题),这个IDE本身就集成了git,但是如果要在termin ...
- 解决 win10 新建文件夹重命名卡死的另一种方法
遇到 win10 新建文件夹重命名卡死时 根据网上的各种方法都不起作用时可以试一下这个方法. 文件夹属性 --- 自定义 --- 你想要那种文件夹 优化此文件夹 --- 把 [视频] 改成 [常规项目 ...
- Java实现文件批量重命名
Windows操作系统可以实现重命名文件操作,却不能实现批量重命名.本实例实现了批量重命名功能,可以将一个文件夹内同一类型的文件按照一定的规则批量重命名.用户可以给出重命名模板,程序可以根据模板对相应 ...
- phpstorm如何进行文件或者文件夹重命名
1.phpstorm的重构 1.1重命名 在phpstorm中,右键点击我们要进行修改的文件,然后又一项重构,我们就可以进行对文件的重命名. 接下来点击重命名进行文件或者文件夹的重新命名. 在框中输入 ...
- mac文件夹怎么重命名?苹果电脑文件夹重命名快捷键
windows系统下给文件夹重命名相信很多朋友都很熟悉,那么Mac OS系统怎么给文件重命名呢,相信很多刚刚入手Mac OS系统的亲们都会有次疑问,下面小编告诉你Mac OS系统的文件夹到底要怎样才能 ...
- java IO 文件批量重命名
java IO 文件批量重命名 package com.vfsd.renamefile; import java.io.File; import java.io.FileInputStream; im ...
随机推荐
- rpm安装rpm-package报错:Header signature NOKEY 和 error: Failed dependencies:
以前经常遇到这个问题,一直未有记录,今天记录下来: 在安装rpm包的时候报错误如下: Question 1: warning: *.rpm: Header V3 DSA signature: NOKE ...
- 基于注解配置的Spring MVC 简单的HelloWorld实例应用
2.1 问题 使用注解的方式重构helloworld应用案例. 2.2 方案 1. @RequestMapping注解应用 @RequestMapping可以用在类定义和方法定义上,它标明这个类或方法 ...
- freemarker如何遍历HashMap
查询资料有以下两种方法: 1. <#if appMap?exists> <#list appMap?keys as key> key:${key} value:${appMap ...
- 利用API方式进行数据库的增删改查
/* 将数据库的增删改查单独放进一个包 */ package com.itheima28.sqlitedemo.dao; import java.util.ArrayList; import java ...
- python 发送邮件函数模块
发送邮件函数功能 #!/usr/bin/env python # -*- coding:utf-8 -*- import smtplib from email.mime.text import MIM ...
- HDU 1232 畅通工程(并查集)
畅通工程 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Problem Des ...
- lvs realserver 配置VIP
# $# 表示提供到shell脚本或者函数的参数总数: # 1表示只有一个参数. #/bin/bash #file: tun_RS.sh if [ $# -ne 1 ]; then echo “usa ...
- 迅为顶级四核开发板 Exynos4412开发板,仅售560元
业内公认最强四核 藐视一切挑战 ●四核CPU ●四核GPU ●双通道内存 ●HKMG技术 ●超级性能 ●至佳稳定 ●供货周期长 Exynos 4412处理器成功应用于三星GALAXY S3 ...
- 技巧:利用 Workflow 显示附近的免费 Wi-Fi
得益于 Workflow 自 1.5.3 版本起更新的 Get Content of URL 动作,该 App 的潜力得到了极大的提升.本文分享一种有趣的用法,搜寻附近的免费 Wi-Fi 并择一显示在 ...
- Hadoop_FileInputFormat分片
Hadoop学习笔记总结 01. InputFormat和OutFormat 1. 整个MapReduce组件 InputFormat类和OutFormat类都是抽象类. 可以实现文件系统的读写,数据 ...