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()); 
			  if (f.exists()) { 
				  // System.gc(); 
				  Process process = Runtime.getRuntime().exec("rm -rf "+f.getAbsolu
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章