当你在目录下进行一系列操作时,若要创建许多文件或者修改文件,可能会遇到许多麻烦的事。所以呢,新建一个文件夹,然后在这个文件夹下新建文件或者修改文件。假设,你的代码要在一个目录下新建一个文件夹,名为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之创建临时文件夹遇到同名文件该咋办的更多相关文章

  1. Django 修改该项目文件夹、项目名及项目文件夹中同名文件夹,报错 ModuleNotFoundError: No module named 'untitled'

    如果你直接重构项目文件夹名及重构项目名和重构项目文件夹内同名文件夹 执行项目报错 ModuleNotFoundError: No module named 'untitled' 请执行以下操作

  2. itools安装程序无法创建临时文件夹

    做个记录: itools链接ios设备后,安装程序包时提示:无法创建临时文件夹 主要原因可能有以下几点 1.手机储存空间不足. 2.驱动组建被删除了,重启管理软件会自动跟新驱动. 解决办法:1.清除空 ...

  3. createNewFile创建空文件夹与createTempFile创建临时文件夹

    创建要注意的地方如下: <pre name="code" class="java"> File类的createNewFile根据抽象路径创建一个新的 ...

  4. java生成临时文件夹和删除临时文件夹

    为了不生成同名的文件夹 String s = UUID.randomUUID().toString(); String filepath = ServletActionContext.getServl ...

  5. 在存放源程序的文件夹中建立一个子文件夹 myPackage。例如,在“D:\java”文件夹之中创建一个与包同名的子文件夹 myPackage(D:\java\myPackage)。在 myPackage 包中创建一个YMD类,该类具有计算今年的年份、可以输出一个带有年月日的字符串的功能。设计程序SY31.java,给定某人姓名和出生日期,计算该人年龄,并输出该人姓名、年龄、出生日期。程序使用YM

    题目补充: 在存放源程序的文件夹中建立一个子文件夹 myPackage.例如,在“D:\java”文件夹之中创建一个与包同名的子文件夹 myPackage(D:\java\myPackage).在 m ...

  6. python 创建临时文件和文件夹

    ----需要在程序执行时创建一个临时文件或目录,并希望使用完之后可以自动销毁掉. tempfile 模块中有很多的函数可以完成这任务.为了创建一个匿名的临时文件,可以使用tempfile.Tempor ...

  7. SVN删除同名文件夹

    解     释一下:     SVN  出现这个错误的原因是我删除了一个文件夹后又创建了一个同名文件夹.  在  svn   server  端,好像是不能区分这两个文件夹,所以出现了错误.     ...

  8. php文件上传提示错误:找不到临时文件夹

    "找不到临时文件夹",不可能啊,该项目的tmp目录已经创建好了呀. 感觉不对劲,运行自己写过的代码,发现也提示这个错误.确实不对劲,以前能上传成功的代码,现在却不能用了. 百度下, ...

  9. java实现创建临时文件然后在程序退出时自动删除文件(转)

    这篇文章主要介绍了java实现创建临时文件然后在程序退出时自动删除文件,从个人项目中提取出来的,小伙伴们可以直接拿走使用. 通过java的File类创建临时文件,然后在程序退出时自动删除临时文件.下面 ...

随机推荐

  1. 使用Python来编写一个简单的感知机

    来表示.第二个元素是表示期望输出的值. 这个数组定义例如以下: training_data = [  (array([0,0,1]), 0),  (array([0,1,1]), 1),  (arra ...

  2. 【温故知新】——BABYLON.js学习之路·前辈经验(一)

    前言:公司用BABYLON作为主要的前端引擎,同事们在长时间的项目实践中摸索到有关BABYLON的学习路径和问题解决方法,这里只作为温故知新. 一.快速学习BABYLON 1. 阅读Babylon[基 ...

  3. 上传中文文件到linux文件出现乱码问题的解决方案

    convm -f gbk -t utf8 -r --notest /ftp的目录 效果:

  4. 2017.04.20 Adams仿真介绍

    Adams 仿真 | 验证"隐性机器人模型"概念,提高视觉伺服精度 产品:Adams行业:科研优势: 1.Adams 仿真可精确预测机器人的位置和方位 2.仿真在理论工作验证中起着 ...

  5. Shell脚本之:for

    与其他编程语言类似,Shell支持for循环. for循环一般格式为: for 变量 in 列表 do command1 command2 ... commandN done 列表是一组值(数字.字符 ...

  6. js:"use strict"; 严格模式

    http://www.ruanyifeng.com/blog/2013/01/javascript_strict_mode.html

  7. python:如何判断字符串中的内容是否都为数字并且把字符串转换为数字

    使用str.isdigit();有两种使用方法 str.isdigit('12345') =====>True str.isdigit('aaaaa')======>False 或者 '1 ...

  8. mysql启动參数(/etc/my.cnf)具体解释汇总

    在linux以下的/etc/my.cnf的參数具体解释汇总 MYSQL–my.cnf配置中文具体解释 basedir = path   使用给定文件夹作为根文件夹(安装文件夹). character- ...

  9. detect——point_in_polygon

    /******************实现功能:判断平面任一点是否在指定多边形内********************/ #include <string> #include <v ...

  10. spring boot 发布成包所需插件

    在pom.xml里配置 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId> ...