Java file类中renameTo方法操作实例
作者:有点浪的程序员 发布时间:2021-06-13 01:21:03
renameTo方法
public boolean renameTo(File dest),File类中的renameTo方法可以操作文件或目录。
1. 操作文件
1.1 在同一目录下操作
1.重命名前的文件不存在。如图1.1:若hello1目录下无a.txt文件,或者hello1目录根本不存在,执行
renameTo方法会返回false。
2.重命名后的文件已存在。如图1.1:若hello1目录下已经有一个aa.txt文件,执行renameTo方法会返回false。
3.重命名前的文件存在,重命名后的文件不存在。如图1.1:若hello1目录下有a.txt文件,没有aa.txt文件。执行renameTo方法会返回true。hello1目录下的a.txt文件被重名为aa.txt文件(a.txt文件消失)。
1.2 在不同目录下操作
1.重命名前的文件不存在,如图1.2:若hello1目录下的a.txt文件不存在,或者该目录根本就不存在,执行renameTo方法会返回false。
2.重命名后的目录不存在,如图1.2:若hello2目录不存在,执行renameTo方法会返回false。
3.重命名后的文件已经存在,如图1.2:若hello2目录下面已经有一个aa.txt文件,执行renameTo方法会返回false。
4.重命名前的文件存在,重命名后的文件不存在。如图1.2:若hello1目录下有一个a.txt文件,hello2目录下无aa.txt文件,执行renameTo方法会返回true。hello1目录下的a.txt文件会被移动到hello2目录下被命名为aa.txt文件(hello1目录下的a.txt文件消失)。
2.操作目录
2.1在同一目录下操作
1.重命名前的目录不存在,如图2.1:若hello11目录不存在,执行renameTo方法会返回false。
2.重命名后的目录已存在,如图2.1:若hello22目录已经存在,执行renameTo方法会返回false。
3.重命名前的目录存在,重命名后的目录不存在。如图2.1:若hello11目录存在,hello22目录不存在。执行renameTo方法会返回true。执行完renameTo方法。hello11目录被命名为hello22(hello11目录消失)。
2.2在不同目录下操作
1.重命名前的目录不存在,如图2.2:若hello11目录不存在,执行renameTo方法会返回false。
2.重命名后的目录已存在,如图2.2:若hello2目录下面已经有一个hello22的子目录,执行renameTo方法会返回false。
3.重命名前的目录存在,重命名后的目录不存在。如图2.2:若hello11目录存在,hello22目录不存在。执行renameTo方法会返回true。执行完renameTo方法。hello1目录下的hello11目录移动到hello2目录下被重命名为hello22(hello1目录下的hello11目录消失)。
File.renameTo()无效-解决
File.renameTo()在windows下运行正常,可正常移动文件。但在linux下就失败了,代码运行正常,但文件没有移动。
这种情况下可以使用Files.move代替。
//import java.nio.file.*;
//重命名文件
// new File(tempFile).renameTo(new File(outFile));
Files.move(Paths.get(tempFile), Paths.get(outFile), StandardCopyOption.REPLACE_EXISTING);
来源:https://blog.csdn.net/chenlang02/article/details/120646465


猜你喜欢
- SpringBoot集成Redis 1.添加redis依赖<dependency> <groupId
- SpringBoot的持久化层可以是Spring内置的轻量级JdbcTemplate、也可以是Hibernate或Mybatis等等,只需要
- 今天写项目突然出现了无法启动Gradle的bug,如下图然后就看了log日志:这个问题是我第一次看见,然后就开始了各种百度,有说需要在And
- 目录一、抽象类1.抽象类概述1.1 为什么要有抽象类?(抽象类的作用)1.2 抽象类的定义2. 抽象类特点3.抽象类成员特点4.抽象类案例二
- java POI合并两个word文档有需要的可以将主函数中写死的地方改为一个Listimport java.io.FileInputStre
- 第一种方法:同步代码块:作用:把出现线程安全的核心代码上锁原理:每次只能一个线程进入,执行完毕后自行解锁,其他线程才能进来执行锁对象要求:理
- 上一篇中说到了 Expression 的一些概念性东西,其实也是为了这一篇做知识准备。为了实现 EFCore 的多条件、连表查询,简化查询代
- @NonNull导致无法序列化的问题以上这个代码在接参的时候报了一个缺少无参构造函数无法序列化的错误将.class反编译可以看到编译后的源码
- 开门见山 项目运行的环境里面已经有该项目的所有代码依赖,所以项目的代码只要将自己的代码打入进去就能提交到环境中运行了。但是不好的地方就是项
- 代码实例一 using System; using System.IO; using System.Collections; using S
- 前言Spring Boot常用注解整理提示:以下是本篇文章正文内容,下面案例可供参考一、@SpringBootApplication此注解是
- idea 鼠标悬浮显示详情2020 版 idea 之前file -> settings设置如下 2020 版 idea 之后
- 今天没有继续学习新知识点,画出了一个随鼠标画出的 图形,知识点全都是之前学的,话不多说,先上图:代码部分: // ope
- 本文不再对值类型进行讨论,主要讨论一下引用类型。如要看内存值类型的朋友可以看一下前一篇C#之CLR内存原理初探。C#引用类型具体分析如下:先
- 1)new 运算符:用于创建对象和调用构造函数。这种大家都比较熟悉,没什么好说的了。2)new 修饰符:在用作修饰符时,new 关键字可以显
- 一、项目简述功能包括: 分为管理员及普通业主角色,业主信息,社区房屋,维护 管理,社区车辆,社区投诉,社区缴费,社区业务信息维 护等等功能。
- 本文实例讲述了C#实现利用泛型将DataSet转为Model的方法。分享给大家供大家参考。具体如下:因为网站需要用C#开发,习惯了java的
- 1.内部类概念及分类将一个类定义在另一个类的内部或者接口内部或者方法体内部,这个类就被称为内部类,我们不妨将内部类所在的类称为外围类,除了定
- 大家对于 Spring 的 scope 应该都不会默认。所谓 scope,字面理解就是“作用域”、“范围”,如果一个 bean 的 scop
- 需求说明实现方式嗯 这个可以视作一个经典的消费者和生产者的问题,详细见代码注释代码内容 消费者,负责取走生产者产生的信息/** * @aut