`

JAVA 遍历文件夹下的所有文件(递归调用和非递归调用)

 
阅读更多

JAVA 遍历文件夹下的所有文件(递归调用和非递归调用)

1.不使用递归的方法调用.

public void traverseFolder1(String path) {
        int fileNum = 0, folderNum = 0;
        File file = new File(path);
        if (file.exists()) {
            LinkedList<File> list = new LinkedList<File>();
            File[] files = file.listFiles();
            for (File file2 : files) {
                if (file2.isDirectory()) {
                    System.out.println("文件夹:" + file2.getAbsolutePath());
                    list.add(file2);
                    fileNum++;
                } else {
                    System.out.println("文件:" + file2.getAbsolutePath());
                    folderNum++;
                }
            }
            File temp_file;
            while (!list.isEmpty()) {
                temp_file = list.removeFirst();
                files = temp_file.listFiles();
                for (File file2 : files) {
                    if (file2.isDirectory()) {
                        System.out.println("文件夹:" + file2.getAbsolutePath());
                        list.add(file2);
                        fileNum++;
                    } else {
                        System.out.println("文件:" + file2.getAbsolutePath());
                        folderNum++;
                    }
                }
            }
        } else {
            System.out.println("文件不存在!");
        }
        System.out.println("文件夹共有:" + folderNum + ",文件共有:" + fileNum);

    }

 2.使用递归的方法调用.

public void traverseFolder2(String path) {

        File file = new File(path);
        if (file.exists()) {
            File[] files = file.listFiles();
            if (files.length == 0) {
                System.out.println("文件夹是空的!");
                return;
            } else {
                for (File file2 : files) {
                    if (file2.isDirectory()) {
                        System.out.println("文件夹:" + file2.getAbsolutePath());
                        traverseFolder2(file2.getAbsolutePath());
                    } else {
                        System.out.println("文件:" + file2.getAbsolutePath());
                    }
                }
            }
        } else {
            System.out.println("文件不存在!");
        }
    }

   

public static List<File> getFileList(String strPath) {
        File dir = new File(strPath);
        File[] files = dir.listFiles(); // 该文件目录下文件全部放入数组
        if (files != null) {
            for (int i = 0; i < files.length; i++) {
                String fileName = files[i].getName();
                if (files[i].isDirectory()) { // 判断是文件还是文件夹
                    getFileList(files[i].getAbsolutePath()); // 获取文件绝对路径
                } else if (fileName.endsWith("avi")) { // 判断文件名是否以.avi结尾
                    String strFileName = files[i].getAbsolutePath();
                    System.out.println("---" + strFileName);
                    filelist.add(files[i]);
                } else {
                    continue;
                }
            }

        }
        return filelist;
    }

 

分享到:
评论

相关推荐

    遍历目录下所有的文件_遍历文件夹文件_java遍历目录下所有文件_

    在Java编程语言中,遍历一个目录下的所有文件和子目录是一项常见的...综上所述,遍历Java目录下的所有文件和子目录涉及`File`类的使用,以及递归遍历的概念。在处理文件系统操作时,正确理解和应用这些概念至关重要。

    C语言遍历文件夹里所有文件

    该函数通过递归方式实现了对指定路径下的所有文件及子文件夹的遍历。其核心代码如下: ```cpp if ((handle = _findfirst(curr.c_str(), &filefind)) == -1) { return; } while (!(done = _findnext(handle, &file...

    c++遍历文件夹及其子文件夹所有文件 并输出文件路径和文件内容

    在C++编程中,遍历文件夹及其子文件夹并输出所有文件的路径与内容是一项常见的任务,尤其在处理大量数据或进行文件管理时。这个程序的实现涉及到对操作系统文件系统的接口调用以及文件操作。以下是一份详细的步骤和...

    Java遍历文件夹下所有文件并重新命名

    如果遇到目录,我们将递归调用changeFileName()方法来遍历该目录下的所有文件。 重新命名文件 在遍历文件夹下的所有文件后,我们可以使用File类的renameTo()方法来重新命名文件。在本文的示例代码中,我们使用了...

    [delphi函数]_一个遍历所有文件夹的函数

    3.最后,函数会使用 FindFirst 函数遍历 Path 目录下的所有文件和文件夹。如果发现文件夹,则递归调用 MakeFileList 函数以遍历子文件夹。如果发现文件,则判断文件扩展名是否符合 FileExt,如果符合,则添加到结果...

    [ASP.NET(C#)] - 利用递归遍历文件夹和文件存入TreeView

    接着,我们调用 TraversingCatalog 函数来递归遍历文件夹和文件。 四、TraversingCatalog 函数 TraversingCatalog 函数用于递归遍历文件夹和文件。该函数的参数包括 TreeNode 对象和文件夹的路径。在函数中,我们...

    递归遍历与非递归遍历文件夹.pdf

    在计算机科学中,遍历是访问或操作一个数据...在实际应用中,选择哪种遍历方式取决于具体需求,例如,处理深度较大的文件系统时,非递归遍历可能是更好的选择,因为它避免了深度过大的递归调用可能导致的栈溢出问题。

    遍历文件夹中的文件

    - **多级目录遍历**:如果需要遍历多级目录,可以通过递归调用`GetFileName`方法来实现。 - **文件类型过滤**:可以根据实际需求调整条件判断语句,以支持不同的文件类型过滤逻辑。 - **错误处理**:在实际应用中,...

    java中File类应用遍历文件夹下所有文件

    Java中File类应用遍历文件夹下所有文件 Java语言中的File类是java.io包中的一部分,提供了...Java中的File类提供了一个便捷的方式来遍历文件夹下所有文件,我们只需要使用递归函数和listFiles()方法来实现文件夹遍历。

    详解shell 遍历文件夹内所有文件并打印绝对路径

    ### 详解Shell脚本遍历文件夹内所有文件并打印绝对路径 #### 一、引言 在Linux或Unix环境中,Shell脚本是一种强大的工具,能够帮助用户执行一系列任务,如文件管理、进程控制等。其中,遍历文件夹内的所有文件并...

    遍历文件夹自动生成目录树

    遍历文件夹是指程序通过递归或循环的方式访问指定目录及其所有子目录下的文件和子目录。在不同的编程语言中,都有相应的API或库函数来支持这项功能。例如,在Python中,我们可以使用`os`和`os.path`模块,而在Java中...

    (MFC)遍历文件夹下的文件(包括子文件夹)

    本文将深入探讨如何使用MFC来遍历一个文件夹及其子文件夹中的所有文件,这在许多应用程序中都非常实用,例如文件管理和搜索功能。我们将遵循以下步骤: 1. **创建MFC应用程序** 在Visual Studio 2008中,选择...

    JAVA实现遍历文件夹下的所有文件(递归调用和非递归调用)

    总结来说,遍历文件夹下的所有文件在Java中可以通过非递归和递归两种方式实现。非递归方法适合处理大型文件系统,避免了递归可能导致的栈溢出问题,但需要额外的内存空间。递归方法则简洁明了,易于理解和实现,但对...

    c语言递归遍历指定文件夹下所有文件算法

    ### C语言递归遍历指定文件夹下所有文件算法 #### 概述 在C语言中,递归遍历文件夹是一种常见的需求,主要用于搜索、处理文件系统中的文件或目录等场景。递归遍历意味着程序会从一个指定的根目录开始,逐层深入每...

    遍历文件夹名称及文件内数据_遍历文件夹_读取文件_源码

    这可以通过递归函数实现,每次调用自身处理当前目录下的每个子文件夹。在VBScript或VBA中,可以使用`FileSystemObject`对象的`GetFolder`方法获取文件夹对象,然后通过`SubFolders`属性获取子文件夹集合,并遍历该...

    易语言遍历目录文件

    这段代码首先调用`目录列表`获取目录`C:\MyDirectory\`中的所有文件和子目录,然后通过循环遍历得到的列表,逐个获取并打印文件信息。`文件信息`函数的第三个参数`.T.`表示我们只关心文件名,最后一个参数`.F.`表示...

    VB遍历指定文件夹内所有文件

    在VB(Visual Basic)编程中,遍历指定文件夹内的所有文件是一项常见的任务,这有助于进行文件管理、数据处理或自动化工作流程。本教程将详细解释如何使用VB来实现这一功能。 首先,我们需要引入`System.IO`命名...

    MFC读取文件夹并且遍历该文件下面的所有文件

    在MFC(Microsoft Foundation Classes)环境下,开发C++应用程序时,常常需要处理文件系统操作,例如读取文件夹以及遍历其下的所有文件和子文件夹。本篇将详细讲解如何实现这一功能,并提供相关代码示例。 首先,...

    遍历某文件夹下的 .txt 文件

    遍历文件夹是指按照一定的顺序访问文件夹中的所有文件及子文件夹的过程。这一过程通常用于查找特定类型的文件或收集文件夹内的所有文件信息。 #### 1.2 应用场景 - 数据备份:在备份数据时,可能需要遍历整个文件夹...

    遍历文件夹下的文件名

    在IT行业中,遍历文件夹下的文件名是一项基础但至关重要的任务,特别是在开发涉及文件操作的应用程序时。Delphi作为一款强大的Object Pascal集成开发环境,提供了丰富的文件系统API和组件来帮助开发者完成这类任务。...

Global site tag (gtag.js) - Google Analytics