前言
最近更換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());
if (f.exists()) {
// System.gc();
Process process = Runtime.getRuntime().exec("rm -rf "+f.getAbsolu