`
hy2012_campus
  • 浏览: 30639 次
  • 性别: Icon_minigender_1
  • 来自: 河南
社区版块
存档分类
最新评论

java实现遍历磁盘所有的文件

    博客分类:
  • java
 
阅读更多

java对某一个磁盘进行递归遍历

import java.io.File;
import java.util.ArrayList;
import java.util.List;
 
 /**
  * 单线程方式遍历所有文件
  * @author Administrator
  *
  */
public class Test {

    private void listFiles(File dir) {
        //获取指定目录下当前的所有文件或文件夹对像
        File[] files = dir.listFiles();
        if (files == null)
            return;
        for (File file : files){
            System.out.println(file.getAbsolutePath());
            if (file.isDirectory()){
                listFiles(file);
            } else {
                System.out.println(file.getAbsolutePath());
            }
        }      
    }
    public void traverseSysDisk(List<String> sysDiskId) {
        for (String diskId : sysDiskId) {
            File fileDir = new File(diskId);
            listFiles(fileDir);
        }
    }
    
    public List<String> getSystemDiskID() {
        File[] files = File. listRoots();
        ArrayList<String> list = new ArrayList<String>();
        for(int i = 0; i < files.length; i++) {
            list.add(files[i].toString());
        }
        return list;
    }
    
    public static void main(String[] args) {
        long t1 = System.currentTimeMillis();
        Test test = new Test();
        List<String> fileList = test.getSystemDiskID();
        test.traverseSysDisk(fileList);
        long t2 = System.currentTimeMillis();
        System. out.println("Total time: " + (t2 - t1) / 1000 + "s." );
    }
}
/**
  * 单线程方式遍历所有文件
  * @author Administrator
  *
  */
public class Test extends Thread {
    private File file;
    public Test(File f) {
        this.file = f;
    }
    public void traverse(File f) {
        if (f == null)
            return;
        if (f.isDirectory()) {
            File[] fileArr = f.listFiles();
            for (File tmp : fileArr) {
                traverse(tmp);
            }
        } else {
            System.out.println(f.getAbsolutePath());
        }
    } 
    @Override
    public void run() {
        traverse( file);
    } 
    public static void main(String[] args) {
        File[] files = File. listRoots();
        for (File file : files) {
            new Test(file).start();
        }   
    }
}

 

分享到:
评论

相关推荐

    多线程全面遍历磁盘文件

    总结,多线程遍历磁盘文件是一种有效提升文件处理速度的技术,通过合理的线程管理和遍历算法优化,可以实现快速而全面地遍历包括隐藏文件和系统文件在内的所有文件。在实际应用中,还需要考虑线程同步、错误处理以及...

    遍历磁盘文件

    在IT行业中,遍历磁盘文件是一项基础但重要的任务,特别是在进行系统管理、文件操作、数据备份或软件开发时。本篇文章将详细讲解如何遍历磁盘文件,包括遍历C盘以及遍历指定目录的方法。 首先,让我们从标题中的...

    遍历磁盘目录.rar

    遍历磁盘目录是指通过编程或脚本方式逐个访问磁盘上的所有文件和子目录。这通常用于搜索特定文件、备份数据、统计磁盘使用情况或者进行清理工作。在不同的操作系统中,遍历目录的方法略有不同。 在Windows系统中,...

    遍历磁盘路径

    在IT领域,遍历磁盘路径是一个常见的任务,特别是在文件管理系统、数据分析或自动化脚本中。这个任务涉及访问和操作文件系统,以便获取特定目录及其子目录中的所有文件和文件夹。下面我们将深入探讨这个主题。 首先...

    java遍历磁盘文件并加入面板中(不含事件)

    遍历硬盘中的所有文件并添到面板当中(不含事件)

    java读取磁盘并遍历磁盘文件过程解析

    Java 读取磁盘并遍历磁盘文件过程解析 Java 读取磁盘并遍历磁盘文件过程解析是指通过 Java 语言来读取磁盘信息并...Java 读取磁盘并遍历磁盘文件过程解析可以通过使用 `File` 对象和 `FileSystemView` 对象来实现。

    Java编写在某一磁盘下遍历所有

    总的来说,这个Java程序提供了一个基础的磁盘遍历框架,通过递归遍历实现了对磁盘上所有文件和目录的访问。在实际项目中,可以基于这个框架进行扩展,比如添加过滤条件、错误处理、性能优化等功能。

    火山pc 文件遍历的解决方案

    文件遍历的效率与文件系统的组织结构、磁盘I/O性能、CPU处理速度等因素有关。优化遍历策略,如使用深度优先搜索(DFS)或广度优先搜索(BFS),以及利用缓存机制,可以提高效率。 4. **安全性**: 文件遍历过程中...

    遍历本地磁盘所有文件夹

    通过学习这个实例,我们可以掌握如何在不同的编程语言中实现遍历磁盘文件夹的功能,这对于进行文件管理、数据检索或其他涉及大量文件操作的应用来说是至关重要的。同时,理解遍历的原理和注意事项,也有助于我们在...

    遍历查找硬盘中所有文件夹及文件,包括隐藏文件

    这个过程涉及到操作系统底层的文件系统交互,通常可以通过编程语言实现,比如使用批处理脚本、Python、C#、Java等。以下将详细介绍如何遍历查找硬盘中的所有文件和文件夹,以及如何处理隐藏文件。 首先,我们需要...

    遍历指定文件夹下所有文件

    总的来说,遍历指定文件夹下的所有文件是通过Windows API中的`FindFirstFile`和`FindNextFile`函数实现的,这个过程涉及到文件系统操作、错误处理和可能的后续文件编辑。对于程序员来说,理解和熟练掌握这些API是...

    扫描磁盘所有文件的例子

    在提供的文件列表中,"扫描磁盘所有文件的例子"很可能是一个示例代码或者教程,可能包含了实现上述功能的代码片段。"说明.htm"可能是关于这个过程的详细解释,"代码中国.txt"可能包含了一些代码示例,而"代码中国....

    java实现的本地文件管理器,java实现文件管理系统,Java

    综上所述,使用Java实现一个本地文件管理器涉及的关键知识点包括: 1. `java.io`包中的`File`类和相关的I/O操作。 2. Java GUI编程,如Swing组件的使用。 3. 事件监听与处理,如`ActionListener`。 4. 异常处理,...

    java实现ftp自动上传文件

    这个程序能够遍历指定磁盘的所有文件,包括子目录,并通过FTP协议将它们上传到远程服务器。以下是一些关于如何使用Java实现FTP自动上传的关键知识点: 1. **FTP协议**:FTP(File Transfer Protocol)是一种用于在...

    java实现windows文件系统操作监控

    在Java编程环境中,实现Windows文件系统的操作监控是一个有趣且实用的技术挑战。这涉及到对系统底层事件的捕获,通常需要借助于系统钩子(System Hooks)的概念。在Java中,虽然原生支持并不完善,但我们可以通过...

    Java通过POI读取Excel遍历数据,批量生成word文档

    通过这种方式,你可以根据业务需求,利用Java和Apache POI库实现Excel数据的批处理,生成大量定制化的Word文档。这个过程对于报告生成、自动化数据导出或者大规模邮件合并等场景非常有用。 这个示例代码只是一个...

    java多文件上传实现

    通过以上步骤,可以实现一个完整的Java多文件上传功能,包括使用Flash显示上传进度条,并将文件信息存储到MySQL数据库。在实际开发中,根据具体需求进行调整和优化,确保功能的稳定性和安全性。

    Java实现doc文件转成docx文件

    这段代码首先打开一个`.doc`文件,然后遍历其所有段落,并将每个段落的文本添加到新的`.docx`文件中。最后,它将`.docx`文件写入磁盘。 注意,这个简单的示例仅处理了段落,可能无法完全保留原始`.doc`文件的所有...

Global site tag (gtag.js) - Google Analytics