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之创建临时文件夹遇到同名文件该咋办的更多相关文章
- Django 修改该项目文件夹、项目名及项目文件夹中同名文件夹,报错 ModuleNotFoundError: No module named 'untitled'
如果你直接重构项目文件夹名及重构项目名和重构项目文件夹内同名文件夹 执行项目报错 ModuleNotFoundError: No module named 'untitled' 请执行以下操作
- itools安装程序无法创建临时文件夹
做个记录: itools链接ios设备后,安装程序包时提示:无法创建临时文件夹 主要原因可能有以下几点 1.手机储存空间不足. 2.驱动组建被删除了,重启管理软件会自动跟新驱动. 解决办法:1.清除空 ...
- createNewFile创建空文件夹与createTempFile创建临时文件夹
创建要注意的地方如下: <pre name="code" class="java"> File类的createNewFile根据抽象路径创建一个新的 ...
- java生成临时文件夹和删除临时文件夹
为了不生成同名的文件夹 String s = UUID.randomUUID().toString(); String filepath = ServletActionContext.getServl ...
- 在存放源程序的文件夹中建立一个子文件夹 myPackage。例如,在“D:\java”文件夹之中创建一个与包同名的子文件夹 myPackage(D:\java\myPackage)。在 myPackage 包中创建一个YMD类,该类具有计算今年的年份、可以输出一个带有年月日的字符串的功能。设计程序SY31.java,给定某人姓名和出生日期,计算该人年龄,并输出该人姓名、年龄、出生日期。程序使用YM
题目补充: 在存放源程序的文件夹中建立一个子文件夹 myPackage.例如,在“D:\java”文件夹之中创建一个与包同名的子文件夹 myPackage(D:\java\myPackage).在 m ...
- python 创建临时文件和文件夹
----需要在程序执行时创建一个临时文件或目录,并希望使用完之后可以自动销毁掉. tempfile 模块中有很多的函数可以完成这任务.为了创建一个匿名的临时文件,可以使用tempfile.Tempor ...
- SVN删除同名文件夹
解 释一下: SVN 出现这个错误的原因是我删除了一个文件夹后又创建了一个同名文件夹. 在 svn server 端,好像是不能区分这两个文件夹,所以出现了错误. ...
- php文件上传提示错误:找不到临时文件夹
"找不到临时文件夹",不可能啊,该项目的tmp目录已经创建好了呀. 感觉不对劲,运行自己写过的代码,发现也提示这个错误.确实不对劲,以前能上传成功的代码,现在却不能用了. 百度下, ...
- java实现创建临时文件然后在程序退出时自动删除文件(转)
这篇文章主要介绍了java实现创建临时文件然后在程序退出时自动删除文件,从个人项目中提取出来的,小伙伴们可以直接拿走使用. 通过java的File类创建临时文件,然后在程序退出时自动删除临时文件.下面 ...
随机推荐
- 线程中的WaitForSingleObject和Event的用法
http://chinaxyw.iteye.com/blog/548622 首先介绍CreateEvent是创建windows事件的意思,作用主要用在判断线程退出,程锁定方面. CreateEvent ...
- 查看网络port占用
Linux和Mac下通用: 1. 利用 netstat 查看网络状态命令: netstat -an|grep port号 2. 利用list open file 命令打开文件(一切都是文件. 包含网 ...
- 正确理解hadoop 2.x 的环形缓冲区: (一) MR环形缓冲区的结构
转载:http://blog.csdn.net/HADOOP_83425744/article/details/49560583 http://bigdatadecode.club/MapReduce ...
- MySQL主库异常,从库手动切换为主库方案
主库异常,从库手动切换为主库方案 1.登录从服务器,确认从服务器已经完成所有同步操作: mysql> stop slave io_thread mysql> show processlis ...
- 【前端阅读】——《程序员思维修炼》摘记&读后感&思维导图
前言:这是一本介绍如何用脑的书,并从思维的角度(以程序员为例),介绍如何从新手成为专家.作者带领着读者(我)共同经历一次有关认知科学.神经学.学习和行为理论的旅程,探索人类大脑令人 惊奇的工作的机制, ...
- js 展开&收缩 二种
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 本地搭建Hadoop伪分布式环境之四:开启搭建Hadoop2.4.0之旅
1.准备软件 64位下载包下载: hadoop-2.4.0-64bit.tar.gz 百度网盘: 链接: http://pan.baidu.com/s/1hqEDe2S password: ...
- WebService中获取request对象一例
@WebService @Service public class WeiXinWebServiceImpl implements IWeiXinWebService { @Resource priv ...
- 超出用省略号function()
//判断是否微信浏览器 function isWeiXin() { var ua = window.navigator.userAgent.toLowerCase(); if (ua.match(/M ...
- Spring Security 表单登录
1. 简介 本文将重点介绍使用Spring Security登录. 本文将构建在之前简单的Spring MVC示例之上,因为这是设置Web应用程序和登录机制的必不可少的. 2. Maven 依赖 要将 ...