Java-IO[实现对目录的遍历以及删除(包含子目录)]

package kevin.io; import java.io.File; public class DeleteDirectory { public static void main(String[] args) { DeleteDirectory delDir=new DeleteDirectory(); try { delDir.listDirectory(new File("test")); delDir.deleteDirectory(new File("test")); } catch (Exception e) { e.printStackTrace(); } } /* * 迭代方式 * 列出dir目录下所有文件(包含子目录) */ public void listDirectory(File dir) throws Exception{ if (!dir.exists()) { throw new Exception(dir+" is not exist"); } if (!dir.isDirectory()) { throw new Exception(dir+" is not a directory"); } File[] files=dir.listFiles(); for(File file: files){ if (file.isDirectory()) { listDirectory(file); } else{ System.out.println(file); } } } /* * 迭代方式 * 删除指定目录以及下的所有文件(包含子目录) */ public void deleteDirectory(File dir) throws Exception { if (!dir.exists()) { throw new Exception(dir+" is not exist"); } if (!dir.isDirectory()) { throw new Exception(dir+" is not a directory"); } File[] files=dir.listFiles(); if (files!=null && files.length>0) { for(File file: files){ if (file.isDirectory()) { deleteDirectory(file); } else { System.out.println("即将删除的文件名称:"+file); if (!file.delete()) { throw new Exception("can not delete the file:"+dir); } } } System.out.println("即将删除的目录名称:"+dir); if (!dir.delete()) { throw new Exception("can not delete the dir:"+dir); } } }}


    推荐阅读