当你在目录下进行一系列操作时,若要创建许多文件或者修改文件,可能会遇到许多麻烦的事。所以呢,新建一个文件夹,然后在这个文件夹下新建文件或者修改文件。假设,你的代码要在一个目录下新建一个文件夹,名为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. Android HAL实例解析

    一.概述 本文希望通过分析台湾的Jollen的mokoid 工程代码,和在s5pc100平台上实现过程种遇到的问题,解析Andorid HAL的开发方法. 二.HAL介绍 现有HAL架构由Patric ...

  2. Android开发人员不得不收集的代码(转)

    App相关→AppUtils.java 安装App installApp 卸载指定包名的App uninstallApp 获取当前App信息 getAppInfo 获取所有已安装App信息 getAl ...

  3. C#:用SqlBulkCopy来实现批量插入数据

    SqlBulkCopy是.net2.0的新特性,平时用的很少,但是其功能却是非常强大,对于批量插入数据性能非常优越 代码 /// /// bulk插入/// private void BulkInse ...

  4. 命令行运行java

    运行TestLinuxCommand.java     代码 import java.io.BufferedReader; import java.io.BufferedWriter; import ...

  5. 用命令行执行ROBOT FRAMEWORK

    除了在ride中执行用例,我们也可以通过命令行的形式执行用例. 1.执行一整个项目 pybot+项目路径 2.执行某个测试集 pybot+测试集的路径 3.执行某个测试集里面的某个用例 pybot - ...

  6. mybatis数据查询返回值

    查询: 返回值是整数. 小于0是查询的数据不存在,大于0是查询的数据已经存在.  修改: 返回值是整数. 大于0是修改的数据成功,否则就是失败. 添加: 和修改同理.

  7. Redis(六):java里常用的redis客户端(Jedis和Redisson)

    Redis的各种语言客户端列表,请参见Redis Client.其中Java客户端在github上start最高的是Jedis和Redisson.Jedis提供了完整Redis命令,而Redisson ...

  8. java nio读取和写入文件

    读取 package com.test; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputS ...

  9. arcgis10.0 切片并发布服务及验证

    1.切片参考网址:https://jingyan.baidu.com/article/fa4125accc6bef28ac7092d7.html 2.通过下面代码验证  参考网址https://www ...

  10. android 自定义控件View在Activity中使用findByViewId得到结果为null

    转载:http://blog.csdn.net/xiabing082/article/details/48781489 1.  大家常常自定义view,,然后在xml 中添加该view 组件..如果在 ...