自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

淺談Java中使用遞歸方法刪除文件

開發(fā) 后端
刪除一個(gè)非空目錄并不是簡單地創(chuàng)建一個(gè)文件對象,然后再調(diào)用delete()就可以完成的。但本文為大家講解如何在Java中使用遞歸方法刪除文件。

要在Java中平臺無關(guān)的方式下安全地刪除一個(gè)非空目錄,你還需要一個(gè)算法。該算法首先刪除文件,然后再從目錄樹的底部由下至上地刪除其中所有的目錄。

只要簡單地在目錄中循環(huán)查找文件,再調(diào)用delete就可以清除目錄中的所有文件:

static public void emptyDirectory(File directory) {
    File[ ] entries = directory.listFiles( );
    for(int i=0; i        entries[i].delete( );
    }
}

這個(gè)簡單的方法也可以用來刪除整個(gè)目錄結(jié)構(gòu)。當(dāng)在循環(huán)中遇到一個(gè)目錄時(shí)它就遞歸調(diào)用deleteDirectory,而且它也會(huì)檢查傳入的參數(shù)是否是一個(gè)真正的目錄。最后,它將刪除作為參數(shù)傳入的整個(gè)目錄。

static public void deleteDirectory(File dir) throws IOException {
    if( (dir == null) || !dir.isDirectory) {
        throw new IllegalArgumentException(
                  "Argument "+dir+" is not a directory. "
              );
    }

    File[ ] entries = dir.listFiles( );
    int sz = entries.length;

    for(int i=0; i        if(entries[i].isDirectory( )) {
            deleteDirectory(entries[i]);
        } else {
            entries[i].delete( );
        }
    }

   dir.delete();
}

在Java 1.1以及一些J2ME/PersonalJava的變種中沒有File.listFiles方法。所以只能用File.list,它的返回值一個(gè)字符串?dāng)?shù)組,你要為每個(gè)字符串構(gòu)造一個(gè)新的文件對象。

【編輯推薦】

  1. JavaOne 2009第三天:微軟與Sun/Oracle攜手并進(jìn)
  2. 開發(fā)高可移植性J2ME的軟件
  3. Java虛擬機(jī)(JVM)中的內(nèi)存設(shè)置詳解
  4. Java中的堆內(nèi)存與棧內(nèi)存分配淺析
  5. 非常全面的實(shí)用JavaScript開發(fā)工具列表
責(zé)任編輯:王觀 來源: 百家編程
相關(guān)推薦

2009-06-06 19:12:19

javaFileFilter搜索

2009-08-17 07:58:00

C#刪除文件目錄

2011-06-15 10:08:01

Qt CVS

2024-12-16 15:07:10

2009-06-15 14:28:00

NetBeansJavafx

2011-08-23 17:52:39

LUAWeb 開發(fā)

2009-06-10 09:58:32

Oracle sequHibernate

2010-09-25 15:20:43

SQL遞歸語句

2023-01-28 17:41:07

Java代碼

2009-07-20 17:41:59

Java JDBC

2011-07-20 14:53:28

iPhone NSLocalize 國際化

2009-06-17 15:06:39

Java 學(xué)習(xí)方法

2019-10-22 17:33:57

LinuxBash腳本

2022-07-04 11:06:02

文件上傳權(quán)限網(wǎng)站

2009-08-28 12:25:58

C#靜態(tài)方法

2010-07-19 12:49:55

Perl修改文件

2010-08-03 15:40:30

NFS文件格式

2009-07-02 13:31:13

JSP組件

2009-09-14 15:45:28

LINQ刪除XML節(jié)點(diǎn)

2010-04-30 18:25:25

Unix刪除
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號