`
strutsliu
  • 浏览: 89080 次
  • 性别: Icon_minigender_1
  • 来自: 漳州
社区版块
存档分类
最新评论

JAVA 递归和非递归删除目录及文件

阅读更多
转载自http://edu.codepub.com/2010/0406/21654.php
递归删除目录就常见了,随便网上搜了一个过来,见下面
import java.io.File;   
  
class DeleteDir {   
  public static void main(String args[]) {   
    deleteDirectory(new File(args[0]));   
  }   
  
  static public boolean deleteDirectory(File path) {   
    if( path.exists() ) {   
      File[] files = path.listFiles();   
      for(int i=0; i<files.length; i++) {   
         if(files[i].isDirectory()) {   
           deleteDirectory(files[i]);   
         }   
         else {   
           files[i].delete();   
         }   
      }   
    }   
    return( path.delete() );   
  }   
}  



非递归的还真没写过。。随便写了一个。仅供参考
import java.io.File;   
import java.util.ArrayList;   
import java.util.List;   
  
  
public class Delete {   
       
    public static void main(String[] args)   
    {   
        File deletePath = new File("你要删除的目录位置");   
        List<String> deleteList = new ArrayList<String>();   
        deleteList.add(deletePath.getPath());   
        while(deleteList.size()>0)   
        {   
            int i = deleteList.size()-1;   
            String currentPath = deleteList.get(i);   
            File[] files = (new File(currentPath)).listFiles();   
            if (files.length == 0) {   
                (new File(currentPath)).delete();   
                deleteList.remove(i);   
            }else {   
                for (int k = 0; k < files.length; k++)    
                {   
                    if(files[k].isDirectory())   
                    {   
                        System.out.println(files[k].getPath());   
                        deleteList.add(files[k].getPath());   
                    }   
                    else  
                    {   
                        System.out.println(files[k].getName());   
                        files[k].delete();   
                    }   
                }   
            }   
        }   
    }   
} 

分享到:
评论

相关推荐

    Java非递归实现删除任意目录的方法

    非递归删除目录的方法主要是使用队列和栈来模拟目录结构的遍历过程。首先,我们需要创建一个队列来存储文件和直接子目录,然后使用 while 循环来遍历队列中的每个元素,如果元素是文件,则直接删除,如果元素是目录...

    java中读取目录下指定的文件

    Java提供了丰富的API来处理文件系统相关的操作,包括读取、创建、删除文件以及遍历目录等。这里我们将详细讲解如何在Java中实现这个功能。 首先,你需要导入Java的`java.io`包,它包含了处理文件和输入/输出流的...

    Java实现删除多文件exe文件+源文件

    在这个项目中,主要用到的是处理文件和目录的FileInputStream和FileOutputStream,以及用于删除文件的File类。File类提供了诸如exists()、delete()等方法,用于检查文件或目录是否存在以及删除它们。而...

    java中遍历某个目录下的所有文件及文件夹中的文件

    ### Java中遍历某个目录下的所有文件及文件夹中的文件 在Java开发中,经常会遇到需要遍历指定目录及其子目录下所有文件的情况。本文将详细介绍如何使用Java标准库中的`java.io.File`类来实现这一功能。我们将通过一...

    定时删除指定目录下指定文件类型的文件 源码

    - 文件系统遍历:使用递归或非递归方式遍历目录及其子目录。 - 条件过滤:编写逻辑来检查文件类型和日期,筛选出符合条件的文件。 - 定时器或计划任务:集成定时执行的机制,如使用Python的`schedule`库,Java的`...

    删除目录下所有.class文件

    例如,`del /s *.class`会递归删除当前目录及其子目录下的所有`.class`文件。 4. **命令行参数**: - `/s` 参数表示在当前目录及其所有子目录中执行操作。 - `/q` 参数用于安静模式,删除时不提示确认。 - `/f` ...

    java文件操作大全

    4. **删除文件夹**:删除文件夹使用`delete()`方法,但如果是非空文件夹,需要先删除其中的所有文件和子文件夹,或者使用`deleteRecursively()`(在Java 7及以上版本的`Files`类中提供)进行递归删除。 5. **删除一...

    java文件资源管理系统

    Java文件资源管理系统是一种基于Java编程语言开发的工具,主要用于管理和操作文件及文件夹。系统集成了多种核心功能,包括文件夹的操作(创建、删除、进入)以及文件的显示、复制、压缩、解压和加密。以下是对这些...

    Java编程中最基础的文件和目录操作方法详解

    在Java编程中,文件和目录的操作是至关重要的基础技能,特别是在处理数据存储、文件系统交互以及应用程序资源管理等方面。以下是对这些基本操作的详细说明: 1. **创建文件**: 使用`File`类的`createNewFile()`...

    二级文件管理系统java

    在Java中,文件和目录的操作主要依赖于`java.io`和`java.nio`这两个包。`java.io`提供了基础的I/O流处理,如File类用于表示文件和目录,以及FileInputStream、FileOutputStream等类用于读写文件。而`java.nio`提供了...

    Java中文件与目录管理-Java教程共2页.pdf.zi

    在Java编程语言中,文件和目录管理是日常开发工作中的重要组成部分。这涉及到读取、创建、删除、重命名文件以及操作目录结构等任务。Java提供了丰富的API来处理这些操作,主要集中在`java.io`和`java.nio`这两个包中...

    删除目录下的文件或者目录

    实现这个功能,一般会采用编程语言如Python、Java或C#等,利用它们提供的文件和目录操作API。例如,在Python中,可以使用os和os.path模块来遍历目录,然后使用remove()或rmdir()函数来删除匹配的文件和目录。在执行...

    Java把目录下的文件打印出来

    通过`File`对象,我们可以获取文件或目录的信息,创建、删除文件,以及遍历目录结构。 要打印目录下的所有文件,我们需要使用`File`类的`list()`或`listFiles()`方法。这两个方法都返回一个字符串数组或`File`对象...

    java文件操作大全_java文件操作大全_包括文件的建立、检查与删除等_

    如果要删除的文件是目录并且包含子文件或子目录,需先递归删除其内容: ```java public static void deleteRecursively(File dir) { if (dir.isDirectory()) { File[] files = dir.listFiles(); if (files != ...

    JAVA文件管理器原代码

    Java提供java.io包,包含File类,用于文件和目录的创建、删除、重命名以及读写操作。此外,java.nio包提供了更现代的非阻塞I/O操作,如通道(Channels)、缓冲区(Buffers)和文件映射(File Mapping)。 4. **多...

    java_io_文件操作_复制_删除_移动_下载

    2. **递归删除:**如果该路径表示的是一个目录,则使用`listFiles()`方法获取其中的所有文件,并对每个文件或子目录递归调用`deleteFolder()`方法进行删除。 3. **最终删除:**当文件夹为空时,可以调用`delete()`...

    Swing 目录删除

    4. **统计信息**:在删除过程中,可以维护计数器来记录删除的文件和目录数量。这可以帮助我们了解操作的规模,并在完成后输出结果。 5. **Eclipse工程**:如果你是在Eclipse环境下开发,创建一个新的Java项目,导入...

    java文件路径操作详细(转载)

    Java中的`java.io.File`类是用于表示文件和目录路径名的抽象表示。它提供了许多操作,如创建、删除、重命名文件和目录,以及获取文件属性等。 2. **路径构造**: 可以通过传递字符串参数给File构造器来创建一个...

    java处理各种文件代码

    Java提供了丰富的API来支持文件操作,这使得开发者能够高效地读取、写入、移动、复制和删除文件。本篇将深入探讨Java中处理文件的相关知识点。 1. **文件I/O流**:Java中的`java.io`包提供了许多类来处理文件I/O...

    java根据路径对文件进行的操作

    1. **创建文件和目录**: 使用`File`类的构造函数可以创建一个表示文件或目录的对象。例如,`new File("path/to/file.txt")`创建了一个指向名为`file.txt`的文件的引用。然后,`createNewFile()`方法可用于创建文件...

Global site tag (gtag.js) - Google Analytics