perl删除Windows下的图片缓存缩略图(Thumbs.db)
时间:2022-06-14
本文章向大家介绍perl删除Windows下的图片缓存缩略图(Thumbs.db),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
接手以前别人做的项目,发现SVN里的ignore里并没有对*.db处理,导致图片的缓存缩略文件都被提交了,而我只要打开图片文件夹,就意味着Thumbs.db发生了改变。
要做的事情有两个:
一、更改svn的设置,以后不再提交Thumbs.db文件
二、批量删除指定目录下的Thumbs.db文件
所以用perl写了一个,代码是在之前的 perl遍历目录 做了一些修改,主要有两点自己注意了:
一、文件路径,Windows下默认为“ ”而linux下则是”/”, 所以统一改为”/”
二、比较两个字符串相等需要使用eq 而不是 == (==返回数值相等,而eq返回的是字符串相等)
三、unlink删除文件,需要指定文件的完整路径
四、perl中的else if 写法为elsif 没有那个“e”
五、perl正则匹配方式为 =~ 或 !~
完整的代码如下,需要更改规则可以修改代码中的这一段
#!/usr/bin/perl
use strict;
use warnings;
my $path = "C:/FlexApp/xx";
my $filecount = 0;
sub parse_env {
my $path = $_[0]; #或者使用 my($path) = @_; @_类似javascript中的arguments
my $subpath;
my $handle;
if (-d $path) {#当前路径是否为一个目录
if (opendir($handle, $path)) {
while ($subpath = readdir($handle)) {
if (!($subpath =~ m/^.$/) and !($subpath =~ m/^(..)$/)) {
my $p = $path."/$subpath";
if (-d $p) {
parse_env($p);
} elsif ($subpath eq "Thumbs.db") {
++$filecount;
print "The file path:".$p."------------The file name:$subpathn";
unlink($p) or warn "failed on $subpath:$!";
}
}
}
closedir($handle);
}
}
return $filecount;
}
my $count = parse_env $path;
my $str = "删除文件的总数:".$count;
print $str;
控制台上输出的结果:
- 曲线点抽稀算法-Python实现
- Python判断文件是否存在的三种方法
- Golang语言 ---切片:用法和本质
- Django 1.10中文文档-第一个应用Part7-自定义管理站点
- 转--Golang语言--复合数据
- 三步学会用spring开发OSGI——(第三步:web篇)
- Python标准库笔记(5) — sched模块
- 设计模式(4)-序列生成器之单例模式
- PyCharm 自定义文件和代码模板
- kotlin到底好在哪里?
- Django 1.10中文文档-第一个应用Part6-静态文件
- Django 1.10中文文档-第一个应用Part5-测试
- 设计模式(5)-己所不欲,施之于人(代理模式)
- Python标准库笔记(4) — collections模块
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- React Native 实现热更新并自动签名打包功能
- PHP命名空间用法实例分析
- Android自定义控件实现方向盘效果
- Android 使用fast-verification实现验证码填写功能的实例代码
- android studio 3.6.0 绑定视图新特性的方法
- Android ListView UI组件使用说明
- 解决laravel 出现ajax请求419(unknown status)的问题
- php求斐波那契数的两种实现方式【递归与递推】
- Android 自定义日期段选择控件功能(开始时间-结束时间)
- Yii框架日志操作图文与实例详解
- Flutter 实现虎牙/斗鱼 弹幕功能
- Yii框架中用response保存cookie,用request读取cookie的原理解析
- Yii框架操作cookie与session的方法实例详解
- php中钩子(hook)的原理与简单应用demo示例
- flutter仿微信底部图标渐变功能的实现代码