gpt4 book ai didi

Perl实现删除Windows下的图片缓存缩略图Thumbs.db

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Perl实现删除Windows下的图片缓存缩略图Thumbs.db由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

接手以前别人做的项目,发现SVN里的ignore里并没有对*.db处理,导致图片的缓存缩略文件都被提交了,而我只要打开图片文件夹,就意味着Thumbs.db发生了改变.

  。

要做的事情有两个:

  。

1、更改svn的设置,以后不再提交Thumbs.db文件 。

2、批量删除指定目录下的Thumbs.db文件 。

  。

所以用perl写了一个,代码是在之前的 perl遍历目录 做了一些修改,主要有两点自己注意了:

  。

1、文件路径,Windows下默认为“\  ”而linux下则是”/”, 所以统一改为”/” 。

2、比较两个字符串相等需要使用eq 而不是 == (==返回数值相等,而eq返回的是字符串相等) 。

3、unlink删除文件,需要指定文件的完整路径 。

4、perl中的else if 写法为elsif 没有那个“e” 。

5、perl正则匹配方式为 =~ 或 !~ 。

  。

完整的代码如下,需要更改规则可以修改代码中的这一段:

  。

Perl实现删除Windows下的图片缓存缩略图Thumbs.db

  。

  。

复制代码 代码如下:

#!/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:$subpath\n";
                         unlink($p) or warn "failed on $subpath:$!";
                     }
                 }
             }
             closedir($handle);
         }
     }
 
     return $filecount;
}
 
my $count = parse_env $path;
my $str = "删除文件的总数:".$count;
 
print $str;

  。

  。

控制台上输出的结果:

  。

Perl实现删除Windows下的图片缓存缩略图Thumbs.db

最后此篇关于Perl实现删除Windows下的图片缓存缩略图Thumbs.db的文章就讲到这里了,如果你想了解更多关于Perl实现删除Windows下的图片缓存缩略图Thumbs.db的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com