File.delete有些文件不能删除,而Files.delete(path)可以,进行深入探究其原因
Posted 阿啄debugIT
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了File.delete有些文件不能删除,而Files.delete(path)可以,进行深入探究其原因相关的知识,希望对你有一定的参考价值。
前言
最近更换deepin系统,在其上做项目,发现运行Java程序,File.delete有的目录下的文件,不能删除,有的能删除,反复对比文件属性及操作权限,均不得其解,最后发现采用Paths和Files得到解决!
我的问题
package com.stati.test;
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.stream.Collectors;
import org.apache.commons.io.FileUtils;
import ch.qos.logback.core.util.FileUtil;
public class TestFile
public static void main(String[] args) throws IOException, InterruptedException
File file = new File("/home/tmpuser/tmp/test1/"); // 获取其file对象
File[] files = file.listFiles(); // 遍历path下的文件和目录,放在File数组中
for (File f : files) // 遍历File[]数组
boolean flag = FileUtils.deleteQuietly(f);
System.out.println("------------------------"+flag);
if (f.delete()) // 若非目录(即文件),则打印
System.out.println("---删除文件成功----" + f.getAbsolutePath());
以上是关于File.delete有些文件不能删除,而Files.delete(path)可以,进行深入探究其原因的主要内容,如果未能解决你的问题,请参考以下文章
file.delete()为啥删除不掉文件夹中的文件,确定不是数据流没有关闭的问题,也可以手动删除,非权限问题
如何实现异步 File.Delete/Create/Move?