JAVA 刪除目標檔案 、過濾器
阿新 • • 發佈:2019-01-26
一、刪除目標檔案
public class File07{
// ① 獲取目標檔案
// ② 刪除目標檔案
// ③ 驗證是否刪除成功
public static void main(String[] args){
File target = new File("file05");
}
// 非空資料夾不能直接刪除
// 需求:如何一次性刪除非空資料夾
private static boolean removeTargetFoleder(File file){
// 如果引數為null 需要做安全處理
if (file == null){
return false;
}
// 檔案如果不存在 可以直接返回false
if(!file.exists()){
return false;
}
// 如果是檔案 或者 空資料夾,可以直接做 delete() 操作
if(file.isFile() || file.list().length == 0){
return file.delete();
}
// 遞迴處理
// 處理所有子檔案以及資料夾
try{
for(File f : file.listFile()){
// 遇到資料夾 優先遞迴處理
if(f.isDirectory()){
removeTargetFolder(f);
}
// 如果不是資料夾 可以直接刪除
// 如果是資料夾 也是處理後的空資料夾 也可以直接刪除
f.delete()
}
}catch (Exception e){
// 如果刪除大量檔案和資料夾 處理過程中可能出現 刪除失敗 或者 取消刪除情況
return false;
}
return file.delete();
}
}
二、過濾器
// 過濾器:獲取滿足條件的目標檔案
// File 相關過濾器:
// list(FilenameFilter)
// listFile(FilenameFilter)
// listFile(FileFilter filter)
// 獲取過濾器過濾後的滿足條件的File(String)陣列
public class File08{
public static void man(String[] args){
// ① 獲取目標檔案
File target = new File("file04");
// ② 獲取目標檔案的子目錄滿足條件的以及檔案()
String[] names = target.list();
// 1).生成條件(過濾器物件)
// 2).獲取滿足條件的目標(過濾後的目標)
File[] targetList = target.listFiles(new FilenameFilter(){
// 引數列表
// dir:file04 對應的file 型別物件
// name : file04 資料夾下所有一級檔案(夾)的檔名
public boolean accept(File dir,String name){
// 如果name 的字尾等於.java 那麼 過濾出來
if(name.endsWith(".java")){
return true;
}
return false;
}
})
// ③ 遍歷列印
for(File file : targetList){
System.out.println(file.getName());
)
}
}