Java 怎么 删除有文件的目录

Python08

Java 怎么 删除有文件的目录,第1张

    /**

     * 删除有文件的目录

     * 

     * @author:Sena

     * @date: 2017-10-30下午3:22:14

     */

    public static boolean deleteDir(File dir) {

        if (dir.isDirectory()) {

            String[] children = dir.list()

            // 递归删除目录中的子目录下

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

                boolean success = deleteDir(new File(dir, children[i]))

                if (!success) {

                    return false

                }

            }

        }

        // 目录此时为空,可以删除

        return dir.delete()

    }

有两种方式,一种使用递归算法,另外一种直接调用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