package book.io; import java.io.File; /** * * @author XWZ * 2007-11-27 * 刪除文件或目錄 */ public class DeleteFileUtil { /** * 刪除文件,可以是單個文件或文件夾 * @param fileName 待刪除的文件名 * @return 文件刪除成功返回true,否則返回false */ public static boolean delete(String fileName){ File file = new File(fileName); if(!file.exists()){ System.out.println("刪除文件失敗:"+fileName+"文件不存在"); return false; }else{ if(file.isFile()){ return deleteFile(fileName); }else{ return deleteDirectory(fileName); } } } /** * 刪除單個文件 * @param fileName 被刪除文件的文件名 * @return 單個文件刪除成功返回true,否則返回false */ public static boolean deleteFile(String fileName){ File file = new File(fileName); if(file.isFile() && file.exists()){ file.delete(); System.out.println("刪除單個文件"+fileName+"成功!"); return true; }else{ System.out.println("刪除單個文件"+fileName+"失敗!"); return false; } } /** * 刪除目錄(文件夾)以及目錄下的文件 * @param dir 被刪除目錄的文件路徑 * @return 目錄刪除成功返回true,否則返回false */ public static boolean deleteDirectory(String dir){ //如果dir不以文件分隔符結尾,自動添加文件分隔符 if(!dir.endsWith(File.separator)){ dir = dir+File.separator; } File dirFile = new File(dir); //如果dir對應的文件不存在,或者不是一個目錄,則退出 if(!dirFile.exists() || !dirFile.isDirectory()){ System.out.println("刪除目錄失敗"+dir+"目錄不存在!"); return false; } boolean flag = true; //刪除文件夾下的所有文件(包括子目錄) File[] files = dirFile.listFiles(); for(int i=0;i<files.length;i++){ //刪除子文件 if(files[i].isFile()){ flag = deleteFile(files[i].getAbsolutePath()); if(!flag){ break; } } //刪除子目錄 else{ flag = deleteDirectory(files[i].getAbsolutePath()); if(!flag){ break; } } } if(!flag){ System.out.println("刪除目錄失敗"); return false; } //刪除當前目錄 if(dirFile.delete()){ System.out.println("刪除目錄"+dir+"成功!"); return true; }else{ System.out.println("刪除目錄"+dir+"失敗!"); return false; } } public static void main(String[] args) { //String fileName = "g:/temp/xwz.txt"; //DeleteFileUtil.deleteFile(fileName); String fileDir = "G:/temp/temp0/temp1"; //DeleteFileUtil.deleteDirectory(fileDir); DeleteFileUtil.delete(fileDir); } }
方法二:java刪除文件或文件夾
/** * 刪除文件或文件夾 * @param file */ public static void deleteFile(File file){ if(file.exists()){ try{ //如果是文件夾,先刪除當前文件夾下的所有文件或文件夾 if(file.isDirectory()){ //獲得當前文件夾下的所有文件或文件夾 File[] files = file.listFiles(); //當前文件夾不爲空 if(files.length > 0){ for(File aFile:files){ //遞歸調用 deleteFile(aFile); } } } //刪除文件或文件夾 file.delete(); } catch(Exception e){ e.printStackTrace(); } } }
Java將List結果分成3份執行 在Java編程中,有時候我們需要將一個List集合中的元素分成幾部分進行處理。這種情況下,我們可以使用Java的相關類庫和API來實現這一需求。在本文中,我們將介紹如何使用Java將List結果分成3份執
隨着業務的發展,文件數量和文件大小會急劇增加,文件遷移的數量和難度不斷攀升。oss_pipe 是rust編寫的文件遷移工具,旨在支撐大規模的文件遷移場景。 編寫 oss_pipe 的初衷 •同類產品面臨的問題 •rust 語
轉載自tuoluzhe8521 導讀:通過簡化複雜的任務依賴關係, DolphinScheduler爲數據工程師提供了強大的工作流程管理和調度能力。在3.2.0版本中,DolphinScheduler帶來了一系列新功能和改進,使其在生產環
微服務Gateway 微服務網關部署在前端Nginx網關和後端微服務之間,Nginx一般充當流量網關,而微服務網關屬於一種業務型 網關,微服務網關層爲後端的微服務羣組提供統一的接入地址,其核心功能是統一做服務路由,在路由基礎上還 可以實現一
本文分享自華爲雲社區《JDBC連接openGauss6.0和PostgreSQL16.2性能對比》,作者: Gauss松鼠會小助手。 PostgreSQL vs openGauss 01 前置準備 安裝JDK: 詳細安裝步驟請問度娘,輸
1 前言: 大家都知道,阿里規範中有一條是不允許用excutors去創建線程池,而是採用ThreadPoolExecutor的原生方式去創建。很早就聽過所過這種說法,但是一直都沒去搞清楚是爲什麼,今天就查閱資料去了解了這
1)編碼 消息長度(short int-->2個字節) + 消息編號(short int--》2個字節) + 消息體 2)Protobuf協議文檔 (1)syntax="proto3"; (2)命名格式
很早之前寫過一篇《Android內存管理機制詳解》點擊量已7萬+,現把Google官方文檔整理輸出一下,供各位參考。 一、內存管理概覽 Android 運行時 (ART) 和 Dalvik 虛擬機使用分頁和內存映射來管理內存。這意味着應用
文盤rust 好久沒有更新了。這段時間筆者用rust寫了個小東西,跟各位分享一下 背景 隨着業務的發展,文件數量和文件大小會急劇增加,文件遷移的數量和難度不斷攀升。oss_pipe 是rust編寫的文件遷移工具,旨在支撐大規模的文件遷移場
本文主要內容 背景 在Java語言中,程序運行的時候,會產生很多對象,而對象信息也只是在程序運行的時候纔在內存中保持其狀態,一旦程序停止,內存釋放,對象也就不存在了。 怎麼能讓對象永久的保存下來呢?--------對象序列化 。 何
Ai technology 前言 AppBuilder上線了低代碼製作組件功能,可以通過工作流的方式構建自定義組件,完成簡單Agent無法完成的複雜功能,使得生成的文本更加定製化,
原方法 /** * 動態更新form * @param form */ updateForm(form) { this.form.manholeId = form.manholeId; this.form
詳解 binlog 時間戳與 exec_time 的關係。 作者:李錫超,蘇商銀行DBA,負責數據庫和中間件運維和建設。擅長 MySQL、Python、Oracle,愛好騎行、技術研究和分享。 愛可生開源社區出品,原創內容未經授權不得隨意
條件註冊 Spring 4.0 引入條件註冊機制,暴露給用戶的API是@Conditional和Condition接口,把@Conditional聲明在一個 @Component類上,並接受一組條件(Condition實現),容器初始化期間
本文分享自華爲雲社區《Python函數與模塊的精髓與高級特性》,作者:檸檬味擁抱。 Python 是一種功能強大的編程語言,擁有豐富的函數和模塊,使得開發者能夠輕鬆地構建複雜的應用程序。本文將介紹 Python 中函數和模塊的基本使用方法,