昨天闲来无事,对磁盘进行了整理。当整理到F盘(放的都是电影之类的)时发现好多电影文件名字前面都有一些标识,我经常在电影天堂上下载电影,所以下载的电影名前面都会有[电影天堂www.dy2018.com]、[电影天堂www.dy2018.net]等字样,感觉很不爽。于是我就想把这些字样去掉,可是程序猿都有一些懒,我也不例外,那么多懒得一个个删除,又懒得去网上找那些批量修改文件名的软件,就想到写个程序。于是,我就开始敲代码了。
首先分析文件名:
通过比较发现都是类似“[电影天堂www.dy2018.com]”的样式,大多数文件名中电影天堂的标识是在开头,有一部分是在最后(也就是文件扩展名之前)。而且在标识前后有的有一个“."字符来分割文件名和标识。
举例说明:
[电影天堂www.dy2018.com]活在当下.720p.BD中英双字幕.rmvb
[电影天堂www.dy2018.com].活在当下.720p.BD中英双字幕.rmvb
活在当下.720p.BD中英双字幕.[电影天堂www.dy2018.com].rmvb
写程序时多考虑了一下,比如说标识在文件名中间(活在当下.720p.[电影天堂www.dy2018.com].BD中英双字幕.rmvb)。
通过以上分析,发现标识都包含dy2018字样,标识前后有字符点。
解决思路:
获取文件名,判断是否含有dy2018标识,截取”[“之前和”]“之后的字符串,并拼接成一个新的文件名
代码如下:
import java.io.File;
public class ClearDy2018 {
public static void main(String[] args) {
File file = new File("F://");
File files[] = file.listFiles();
for(File f : files) {
if(f.isFile()) {//获取F盘下的所有文件(我的电影全在根目录下)
if(f.getName().matches("\\S*dy2018\\S*")) {//正则判断是否含有dy2018标识
StringBuilder filename = new StringBuilder();
int begin = f.getName().indexOf('[');
int end = f.getName().indexOf(']');
//begin不等于0说明标识不再文件名的开头
if(begin!=0) {
filename.append(f.getName().substring(0,begin-1));
} else {
filename.append(f.getName().substring(0,begin));
}
//此时说明标识在文件名的最后,紧跟着文件扩展名
if(end==f.getName().lastIndexOf(".")-1) {
//注意此时截取字符串开始索引是end+1,因为‘]’之后的点是跟扩展名一起的。文件名"幕.rmvb"会变成"幕rmvb"
filename.append(f.getName().substring(end+1));
} else {
//这时文件名中会有一个多余的点字符,要去掉
filename.append(f.getName().substring(end+2));
}
//对文件重命名
File newFile = new File(f.getParent()+File.separator+filename.toString());
f.renameTo(newFile);
System.out.println(f.getName()+"==>"+newFile.getName());//输出文件改名前后变化
}
}
}
}
}
摘要在做数据分析的过程中,经常会想数据分析到底是什么?为什么要做数据数据分析?数据分析到底该怎么做?等这些问题。对于这些问题,一开始也只是有个很笼统的认识。最近这两天,读了一下早就被很多人推荐的《谁说菜鸟不会数据分析》这本书。发现对这些问题讲的还是比较透彻,随后宝器对这本书的核心内容做了一个笔记。如果你对编程感兴趣或者想往编程方向发展,可以关注微信公众号【筑梦编程】,大家一起交流讨论!...
springBoot引入knife4j jar包后项目启动报错:Failed to start bean 'documentationPluginsBootstrapper'Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException这种一般都是springboot版本过高导致可以更换版本到2.4项目就可以启动了<p.
sudo mkdir /media/Esudo chmod -R 777 /media/E获取要自动挂载的分区的UUID和分区类型TYPEsudo blkid /dev/sda3: UUID=”000F70A100099B09″ TYPE=”ntfs” 试一下,看看能否挂载到 /media/E sudo mount -t ntfs /dev/sda3 /media/E 挂载成功的话,就编辑/etc...
python序列化模块-shelve模块详解shelve:vt. 将(书等)放置在架子上;搁置,将某事放到一旁不予考虑;将…搁在一边;装搁架于;个人感觉有点像字典缓存?暂时搁置到一旁的意思?研究了一段时间后,感觉它就是当成了一种临时的数据库(dbm)缓存文件来用的感觉。为什么用shelve?(特别是在已有json和pickle的情况下)使用json或者pickle持久化数据,能dump多次,但lo...
目录创建步骤git 基本命令git 结构git 状态git 撤销操作git 文件删除git 分支1.git分支的创建、修改、切换、删除2.git分支的合并3.存储变更4.远程仓库git 打包创建步骤1.右键点击文件夹--> git bash here2.git init初始化...
记录app仪怎么连接手机?安装简便随时可在手机上查看,高清画质为你展现你的精彩一天,有需要的朋友赶紧来2265安卓网下载使用吧!!!小蚁行车记录仪软件简介:小蚁行车记录仪app是配合智能行车记录仪设备使用的手机软件。APP通过Wi-Fi连接行车记录仪,轻松实现实时预览、录像回看、精彩分享、高级设置等功能。小蚁行车记录仪app官网特色:- 165°广角超人眼细节画质- 2倍视野轻松目测3车道路况- ...
##如何发布我们的sdk?当我们封装好了webrtc sdk后,建议使用swig处理c++头文件,来生成objc,java平台的api。##为何推荐使用swig使用swig的好处是当我们修改了c++接口后,只需要执行生成脚本,就可以更新objc和java类。不需手动修改,减少了工作量。我们仅需手动维护一份c++实现即可,对于android/IOS/MacOS平台的支持完全利用swig去支...
1、最近生产环境遇到了一个问题:会员查询接口,会员返回的开始时间竟然比过期时间大。vipStart=2018-08-07 18:37:28 vipEnd=2018-08-05 13:29:542、会员的开始时间是根据会员的过期时间来计算的(往前推31天)查看系统日志,排除了数据库、代码的计算可能性后,决定用2018-08-07 18:37:28去查询一下日志,是否是线程切换造成的。后面查询到了一个...
艺金汇文化和渔米链集团达成战略合作 共建NFR数字藏品交易平台
一、实验目的1、掌握DPCM编解码系统的基本原理。2、初步掌握实验用C/C++/Python等语言编程实现DPCM 编码器,并分析其压缩效率。二、实验内容1.DPCM编解码原理DPCM是差分预测编码调制的缩写,是比较典型的预测编码系统。在DPCM系统中, 预测器的输入是已经解码以后的样本。之所以不用原始样本来做预测,是因为在解码端无法得到原始样本,只能得到存在误差的样本,因此在DPCM编码器中实际内嵌了一个解码器。在一个DPCM系统中,需要设计预测器和量化器。理想情况下,预测器和量化器应进行联
转载http://blog.csdn.net/sinat_26917383/article/details/53762185“素质云博客”MxNet有了亚马逊站台之后,声势大涨,加之接口多样化,又支持R语言所以一定要学一下。而且作为R语言的fans,为啥咱们R语言就不能上深度学习嘞~——————————————————————————————一、