Java删除文件、目录及目录下所有文件的方法实例

 更新时间:2016年12月26日 09:18:27   作者:上品物语  
这篇文章主要给大家介绍了关于利用Java删除文件、目录及目录下所有文件的方法,文中给出了详细的示例代码与注解,有需要的朋友可以参考借鉴,下面来一起看看吧。

前言

本文主要实现的功能是删除某个目录及目录下的所有子目录和文件,涉及到的知识点:File.delete()用于删除“某个文件或者空目录”!所以要删除某个目录及其中的所有文件和子目录,要进行递归删除。

具体代码示例如下:

import java.io.File;

public class DeleteDirectory {
 /**
 * 删除空目录
 * @param dir 将要删除的目录路径
 */
 private static void doDeleteEmptyDir(String dir) {
 boolean success = (new File(dir)).delete();
 if (success) {
  System.out.println("Successfully deleted empty directory: " + dir);
 } else {
  System.out.println("Failed to delete empty directory: " + dir);
 }
 }

 /**
 * 递归删除目录下的所有文件及子目录下所有文件
 * @param dir 将要删除的文件目录
 * @return boolean Returns "true" if all deletions were successful.
 *   If a deletion fails, the method stops attempting to
 *   delete and returns "false".
 */
 private 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();
 }
 /**
 *测试
 */
 public static void main(String[] args) {
 doDeleteEmptyDir("new_dir1");
 String newDir2 = "new_dir2";
 boolean success = deleteDir(new File(newDir2));
 if (success) {
  System.out.println("Successfully deleted populated directory: " + newDir2);
 } else {
  System.out.println("Failed to delete populated directory: " + newDir2);
 } 
 }
}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

相关文章

  • Java中泛型的使用和优点解析

    Java中泛型的使用和优点解析

    这篇文章主要介绍了Java中泛型的使用和优点解析,泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法,需要的朋友可以参考下
    2023-09-09
  • 浅析mybatis和spring整合的实现过程

    浅析mybatis和spring整合的实现过程

    据官方的说法,在Mybatis3问世之前,Spring3的开发工作就已经完成了,所以Spring3中还是没有对Mybatis3的支持。因此由Mybatis社区自己开发了一个Mybatis-Spring用来满足Mybatis用户整合Spring的需求,下面通过Mybatis-Spring来整合Mybatis跟Spring的用法做介绍
    2015-10-10
  • 对象转Json字符串时如何忽略指定属性

    对象转Json字符串时如何忽略指定属性

    这篇文章主要介绍了对象转Json字符串时如何忽略指定属性,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • java多线程关键字final和static详解

    java多线程关键字final和static详解

    这篇文章主要介绍了java多线程关键字final和static详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • 探讨Java中的深浅拷贝问题

    探讨Java中的深浅拷贝问题

    这个概念估计懂C++的人不会陌生,但是很多朋友并不了解,概括起来将浅拷贝就是指两个对象公用一个值,一个的改变了另一个也会随之改变,深拷贝则是两个对象值相等,但是相互独立互不影响。下面我们将关于java的浅拷贝和深拷贝做一个详细讲解
    2021-06-06
  • spring解决循环依赖的方案示例

    spring解决循环依赖的方案示例

    这篇文章主要介绍spring如何解决循环依赖,文中有相关的代码示例给大家参考,对我们的学习或工作有一定的帮助,感兴趣的同学可以借鉴阅读
    2023-05-05
  • 全面解析Java观察者模式

    全面解析Java观察者模式

    这篇文章主要帮助大家全面解析Java观察者模式,了解java设计模式中的观察者模式,感兴趣的小伙伴们可以参考一下
    2016-09-09
  • java发送http get请求的两种方法(总结)

    java发送http get请求的两种方法(总结)

    下面小编就为大家带来一篇java发送http get请求的两种方法(总结)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • Java中LinkedList详解和使用示例_动力节点Java学院整理

    Java中LinkedList详解和使用示例_动力节点Java学院整理

    LinkedList 是一个继承于AbstractSequentialList的双向链表。它也可以被当作堆栈、队列或双端队列进行操作。接下来通过示例代码给大家详细介绍java中linkedlist的使用,需要的朋友参考下吧
    2017-05-05
  • JDK8中String的intern()方法实例详细解读

    JDK8中String的intern()方法实例详细解读

    String字符串在我们日常开发中最常用的,当然还有他的两个兄弟StringBuilder和StringBuilder,接下来通过本文给大家介绍JDK8中String的intern()方法详细解读,需要的朋友可以参考下
    2022-09-09

最新评论