Java 简易完成文件的复制、移动与删除

Java 简易完成文件的复制、移动与删除

Path和Files是在java SE 7中新添加进来的类,它们要比自JDK 1.0就开始使用的File类要方便的多。

知识简介:
Path表示的是一个目录名序列,其后还可以跟着一个文件名。路径中的第一个部件可以是根部件(相当于根目录),例如/或C:\,而允许访问的根部件取决于文件系统。以根部件开始的路径是绝对路径,否则就是相对路径。

以下为代码片段:

Path fromPath = Paths.get("c:","test","a.txt"); //   相当于 c:\test\a.txt  a.txt为需要复制的文件
Path toPath = Paths.get("c:","test1","b.txt");  //    相当于 c:\test1\b.txt 。 b.txt无需存在
Files.copy(fromPath,toPath); // 完成复制
Files.move(fromPath,toPath); //移动文件(即复制并删除源文件)

注:如果目标路径已经存在(也就是b.txt文件),那么复制或者移动将失败。如果想要覆盖已经存在的目标路径,可以使用REPLACE_EXISTING选项。如果想要复制所有文件的属性,可以使用COPY_ATTRIBUTES选项。也可以同时使用两个选项,如下:

Files.
copy(fromPath , toPath ,StandardCopyOption.REPLACE_EXISTING,StandardCopyOption.COPY_ATTRIBUTES);

同时也可以将移动操作定义为原子性的,这样就可以保证要么自动操作完成,要么源文件继续保存在原来的位置,可以使用ATOMIC_MOVE来实现,代码如下:

Files.move(fromPath , toPath ,StandardCopyOption.ATOMIC_MOVE);

删除文件可以使用如下方法:

Files.delete(fromPath);

注:如果删除的文件不存在(也就是a.txt),则这个方法会抛出异常,因此,也可以使用下面的方法:

boolean isDeleted = Files.deleteIfExists(fromPath);

该方法也可以用来移除空目录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值