一个Java递归删除目录的方法

 1 public static void delDir(File f) {
 2     // 判断是否是一个目录, 不是的话跳过, 直接删除; 如果是一个目录, 先将其内容清空.
 3     if(f.isDirectory()) {
 4         // 获取子文件/目录
 5         File[] subFiles = f.listFiles();
 6         // 遍历该目录
 7         for (File subFile : subFiles) {
 8             // 递归调用删除该文件: 如果这是一个空目录或文件, 一次递归就可删除. 如果这是一个非空目录, 多次
 9             // 递归清空其内容后再删除
10             delDir(subFile);
11         }
12     }
13     // 删除空目录或文件
14     f.delete();
15 }

顺便说一下, 64位的系统大概可以调用几万次递归. 我们基本上不会创建有一万多层的目录. 所以这种方法可以应对一般情况, 不会造成内存溢出等问题.

时间: 2024-07-30 10:12:42

一个Java递归删除目录的方法的相关文章

一个Java复制目录的方法(递归)

1 /** 2 * 将目标目录复制为指定目录(也可以用于复制文件) 3 * @param src 源路径 4 * @param dest 目标路径 5 * @throws IOException 6 */ 7 public static void copyDir(File src, File dest) throws IOException { 8 if(!src.exists()) { // 检查源路径是否存在 9 System.out.println("源目录不存在!"); 10

JAVA递归删除目录及包含的全部文件

JAVA递归删除目录及包含的全部文件/** * 递归删除某一个目录 * @param objDir 目标目录文件 * @return 是否删除成功,true为成功 */ public static boolean deleteDir(File objDir) { if (objDir.exists()) { File[] dirs = objDir.listFiles(); for (int i = 0; i < dirs.length; i++) { if (dirs[i].isDirecto

Java递归删除目录中的子目录和文件的方法

一般我们在项目中保存文件时,是把目录的信息存放在一个表中,把文件信息存放在另一个表中. 当我们需要删除指定目录时,首先需要删除的是数据库中的目录和子目录的所有信息,然后删除文件信息,最后是是删除创建的文件目录,如果有子目录,则需要使用递归删除,即: 业务逻辑层中删除指定目录中的子目录和文件的流程 //删除数据库中的目录信息 catalogueDAO.deletecat(dir); //删除数据库中的文件信息 fileDAO.deleteFile(dir); //使用递归删除函数deleteDir

mac os intellij如何快路查看一个java类的所有方法,结构

如果是自己写的java类,点击点击导航的project-setting-show members 如果是系统库的,点击structure 再点一下lib中的类,或者快捷键 command+F12

PHP递归删除目录

创建文件夹 mkdir('test/a/b/c', 0777, true); 封装递归删除目录的方法 <?php // 递归删除目录 rm('test'); function rm($path){ // test/a // 打开目录 $dir = opendir($path); // 跳过两特殊的目录结构 . .. readdir($dir); readdir($dir); // 循环删除 while($newFile = readdir($dir)){ // 判断是否是文件还是文件夹 // t

Java基础-接口中国特色社会主义的体制中有这样的现象:地方省政府要坚持党的领导和按 照国务院的指示进行安全生产。请编写一个java应用程序描述上述的体制现象。 要求如下: (1)该应用程序中有一个“党中央”接口:CentralPartyCommittee,该接口中 有个“坚持党的领导”方法:void partyLeader() (2)该应用程序中有一个“国务院”抽象类:StateCouncil,

36.中国特色社会主义的体制中有这样的现象:地方省政府要坚持党的领导和按 照国务院的指示进行安全生产.请编写一个java应用程序描述上述的体制现象. 要求如下: (1)该应用程序中有一个“党中央”接口:CentralPartyCommittee,该接口中 有个“坚持党的领导”方法:void partyLeader() (2)该应用程序中有一个“国务院”抽象类:StateCouncil,该抽象类中有个“安 全生产”的抽象方法:abstract void safetyInProduction() (

一个java文件中可包含多个main方法

java中的main方法是java应用程序的入口,java程序在运行时,首先调用执行main方法.但并不是说java中只能有一个main方法,不同类中都可以包含main方法.当JVM进行编译时,会提示选择其中一个main方法作为编译的入口.

Java基础-继承-编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数 wheels和车重weight。小车类Car是Vehicle的子类,其中包含的属性有载人数 loader。卡车类Truck是Car类的子类,其中包含的属性有载重量payload。每个 类都有构造方法和输出相关数据的方法。最后,写一个测试类来测试这些类的功 能。

#29.编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数 wheels和车重weight.小车类Car是Vehicle的子类,其中包含的属性有载人数 loader.卡车类Truck是Car类的子类,其中包含的属性有载重量payload.每个 类都有构造方法和输出相关数据的方法.最后,写一个测试类来测试这些类的功 能. package hanqi; public class Vehicle { private int wheels; private int weight

分享一个 Java String split 快速分割的方法

java中string.split() 方法比较强大,但是split()方法采用正则表达式,速度相对会慢一点, 其实大多数场景下并不需要使用正则表达式,下面分享一个不使用正则表达式分隔字符串的方法. 方法保证了和 string.split()的输出结果一致. 直接看代码: public static String[] split(String src,String delimeter){ String srcStr = src; String delimeterStr = delimeter;