码迷,mamicode.com
首页 > 其他好文 > 详细

perl之创建临时文件夹遇到同名文件该咋办

时间:2015-03-05 23:47:39      阅读:247      评论:0      收藏:0      [点我收藏+]

标签:perl

当你在目录下进行一系列操作时,若要创建许多文件或者修改文件,可能会遇到许多麻烦的事。所以呢,新建一个文件夹,然后在这个文件夹下新建文件或者修改文件。假设,你的代码要在一个目录下新建一个文件夹,名为TmpFolder,然后,在文件夹下进行一系列操作。但是,目录下可能之前就会出现TmpFolder,这样一搞,会出问题的。该怎么解决呢,有以下2个:

(1)若是遇到有文件夹的名字是TmpFolder,就不要这个文件夹名字了,直接用TmpFolder2,不就是2了点嘛;但是,要是文件夹

TmpFolder和TmpFolder2都存在呢,就直接用TmpFolder3把,这样一直优雅地迭代下去直到老。(像微软处理同名文件一样)

(2)当然,要是你硬要用TmpFolder,就是任性,这也不是没有办法。如果目录下存在TmpFolder,就把文件夹TmpFoler命名为一个在当前不会重复的文件名,然后再新建文件夹TmpFolder,在一系列操作后,再把文件夹名改过来就得了。那么,问题来了,这个在当前不会重复的文件名该怎么写?在perl里,$$是指perl解释器的进程id,这个id在当前是唯一的。所以呢,就可以如下这样写,

my $tmpfile = 'TmpFolder';
my $chgfile = 'TmpFolder'. $$;

if(-d $tmpfile){
        rename($tmpfile, $chgfile); # 如果有重名文件夹,就改名为指定名称
        mkdir $tmpfile;		# 然后新建临时文件夹
        print "helo";		# 
        rmdir $tmpfile;		# 删除临时文件夹
        rename($chgfile, $tmpfile);	# 恢复原状
}else{
        mkdir $tmpfile ;		# 要是没有重名,就没什么问题了
        print "yay";
        rmdir $tmpfile;
}






perl之创建临时文件夹遇到同名文件该咋办

标签:perl

原文地址:http://blog.csdn.net/kamsau/article/details/44088171

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!