如何用JAVA删除一个非空的目录

Python014

如何用JAVA删除一个非空的目录,第1张

有两种方式,一种使用递归算法,另外一种直接调用windows的命令:

import java.io.File  

  

public class FileDemo {  

    /** 

     * 通过调用系统命令删除一个文件夹及下面的所有文件 

     * @param file 

     */  

    public static void deleteFileByWinCom(File file){  

        Runtime rt = Runtime.getRuntime()  

        String cmd = null  

        try{  

            if(file.isFile()){  

                cmd = "cmd.exe /c del /q/a/f/s "+file.getAbsolutePath()  

            }else{  

                cmd = "cmd.exe /c rd /s/q "+file.getAbsolutePath()  

            }  

            rt.exec(cmd)  

            System.out.println("成功执行了命令...")  

        }catch(Exception e){  

            System.out.println("调用系统命令失败了...")  

        }  

    }  

      

    /** 

     * 通过递归调用删除一个文件夹及下面的所有文件 

     * @param file 

     */  

    public static void deleteFile(File file){  

        if(file.isFile()){//表示该文件不是文件夹  

            file.delete()  

        }else{  

            //首先得到当前的路径  

            String[] childFilePaths = file.list()  

            for(String childFilePath : childFilePaths){  

                File childFile=new File(file.getAbsolutePath()+"\\"+childFilePath)  

                deleteFile(childFile)  

            }  

            file.delete()  

        }  

    }  

      

    public static void main(String[] args){  

        File file=new File("D:\\demo")  

        //deleteFileByWinCom(file)  

        deleteFile(file)  

    }  

}

具体参考资料:http://blog.csdn.net/smach1991710/article/details/9175757

下面给你介绍Java删除文件夹下的子目录及其包含的子文件的方法:

package com.cn.test1

import java.io.File

public class DeleteAllFiles {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

String filePath = "e:\\fq\\"

System.out.println("开始删除文件")

File file = new File(filePath)

// deleteFile(file)

deleteAllFilesOfDir(file)

System.out.println("删除成功!!")

}

//递归删除文件夹(方法一)

public static void deleteFile(File file) {

if (file.exists()) {//判断文件是否存在

if (file.isFile()) {//判断是否是文件

file.delete()//删除文件

} else if (file.isDirectory()) {//否则如果它是一个目录

File[] files = file.listFiles()//声明目录下所有的文件 files[]

for (int i = 0i <files.lengthi ++) {//遍历目录下所有的文件

deleteFile(files[i])//把每个文件用这个方法进行迭代

}

file.delete()//删除文件夹

}

} else {

System.out.println("所删除的文件不存在")

}

}

//方法二

public static void deleteAllFilesOfDir(File path) {

if (!path.exists())

return

if (path.isFile()) {

path.delete()

return

}

File[] files = path.listFiles()

for (int i = 0i <files.lengthi++) {

deleteAllFilesOfDir(files[i])

}

path.delete()

}

}

简单粗暴

File file = new File("d:test")

File[] files = file.listFiles()

for(int i=0 i<files.length i++){

File tmp = files[i]

if(tmp.toString().endsWith(".txt")){

tmp.delete()

}

}