Java中遍历所有文件

2024-06-30

我想让我的程序打印我计算机上所有文件的巨大列表。我的问题是,当我希望它打印位于我的计算机上的所有文件时,它仅打印第一个硬盘驱动器的第一个文件夹中的文件。有什么想法我在这里做错了什么吗?谢谢。

这是我使用的代码:

Main:

import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;

public class Main {

    public static void main(String[] args) {
        ArrayList<File> roots = new ArrayList();
        roots.addAll(Arrays.asList(File.listRoots()));


        for (File file : roots) {
            new Searcher(file.toString().replace('\\', '/')).search();
        }
    }
}

和搜索者类:

import java.io.File;

public class Searcher {

    private String root;

    public Searcher(String root) {
        this.root = root;
    }

    public void search() {
        System.out.println(root);
        File folder = new File(root);
        File[] listOfFiles = folder.listFiles();
        for (File file : listOfFiles) {
            String path = file.getPath().replace('\\', '/');
            System.out.println(path);
            if (!path.contains(".")) {
                new Searcher(path + "/").search();
            }
        }
    }
}

我刚刚尝试过这个,它对我有用。我确实必须添加一个null但检查并更改了目录评估方法:

package test;

import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;

public class Searcher {
    public static void main(String[] args) {
        ArrayList<File> roots = new ArrayList<File>();
        roots.addAll(Arrays.asList(File.listRoots()));


        for (File file : roots) {
            new Searcher(file.toString().replace('\\', '/')).search();
        }
    }

    private String root;

    public Searcher(String root) {
        this.root = root;
    }

    public void search() {
        System.out.println(root);
        File folder = new File(root);
        File[] listOfFiles = folder.listFiles();
        if(listOfFiles == null) return;  // Added condition check
        for (File file : listOfFiles) {
            String path = file.getPath().replace('\\', '/');
            System.out.println(path);
            if (file.isDirectory()) {
                new Searcher(path + "/").search();
            }
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java中遍历所有文件 的相关文章

随机推荐

  • NgRx 更新对象数组中对象的属性

    我的商店里目前有一系列物品 我想在给定传入对象的情况下更新该对象的单个属性 State export interface ApplicationState allNavGroups INavGroup null Reducer on App
  • iOS 上的 Phonegap 3.5 媒体插件错误“无法使用 AvAudioRecorder 开始录音”

    我试图让用户在 Phonegap 应用程序中录制音频文件 它在 Android 上运行良好 但在 iOS 上 当开始录制时出现以下错误 无法使用 AvAudioRecorder 开始录音 我使用 wav 文件名 首先创建该文件 我已按照我找
  • Woocommerce - 检查产品是否是在 60 天前创建的

    我想检查 Woocommerce 产品是否是在不到 60 天前创建的 如果属实 请做点什么 我正在使用官方 Woocmerce 功能获取在后端 管理中创建产品的日期 product gt get date created 我的代码部分有效
  • Eclipse图形布局无法显示adView

    我从 Eclipse Helios 更新到 Eclipse Juno 将 Android SDK 工具更新到 v23 以及 Google Play lib 4 4 由于它们 我无法在 Eclipse 图形布局窗口中查看 XML 布局 我收到
  • Autowired 属性为 null - Spring Boot 配置

    我被自动装配属性中的空值所困扰 我希望我能得到一些帮助 我们在项目中使用 spring boot 版本 0 5 0 M6 四个带有bean的配置文件在一个包中 并按 区域 排序 数据源配置 全局方法安全配置 当我们使用 Spring ACL
  • 可绘制 Android 上的颜色叠加

    我一直在这里关注这个教程中 对角线切割视图 https cdn images 1 medium com max 800 1 IIPRX4i4cOAdxAMeGpY92w png获得对角线视图效果
  • 对于 Windows 上 gem 中的本机扩展构建失败该怎么办?

    我下载的几个 Rails 应用程序依赖于bson ext这似乎是一个本机代码库 当我跑步时rake gems install对于该应用程序 我收到以下错误消息 ERROR Error installing bson ext ERROR Fa
  • 如何在 VS Code 中查找并恢复丢失的视图、视图小节或面板?

    我对 VS Code 中的资源管理器视图的期望行为是 当我打开文件夹时 该文件夹中的所有文件都显示在其中 目前 它只显示 打开编辑器 这不完全是我想要的 大纲 和 时间轴 但是 当我为文件夹创建工作区时 这些文件夹中的文件会预览 这是我想要
  • 通过网络浏览器扫描 iOS 上的信标

    有什么方法可以在 iOS 上进行网页扫描以查找信标吗 据我所知 目前没有iOS网络浏览器支持网络蓝牙 我什至找不到任何有关 Chrome 团队是否计划在 iOS 上为 Chrome 添加网络蓝牙支持的信息 有没有其他方法可以通过网络浏览器
  • Opengl:保持 Arcball 相机向上矢量与 y 轴对齐

    我本质上是在尝试模仿 Maya 中相机旋转的方式 Maya 中的轨迹球始终与 y 轴对齐 因此 无论向上向量指向何处 它仍然会沿 y 轴旋转或与向上向量对齐 我已经能够使用 C 和 Qt 在 OpenGL 中实现 arcball 但我不知道
  • 缓慢变化的维度 - 什么是 Pure type 6 实现

    我试图理解纯类型 6 SCD 实现WIKI http en wikipedia org wiki Slowly changing dimension主要说了三点 如果维度可能发生变化 每个时间片都有一个类型 2 代理键可能会导致问题 纯 T
  • 在 Perl 中查找文件中的字符串并将其替换为另一个字符串

    我正在尝试搜索文件中的字符串并将其替换为另一个字符串 我的文件内容如下 comments abc comments xyz SerialPort 100 comment Baudrate 9600 Parity 2 Databits 8 S
  • C“int”的大小是2字节还是4字节?

    C中的整数变量占用2个字节还是4个字节 它取决于哪些因素 大多数教科书都说整型变量占用2个字节 但是当我运行一个打印整数数组的连续地址的程序时 它显示了 4 的差异 我知道它等于sizeof int 的大小int确实依赖于编译器 回到过去
  • C# 中退出控制台应用程序的命令是什么?

    C 中用于退出控制台应用程序的命令是什么 您可以使用Environment Exit 0 and Application Exit Environment Exit 0 更干净 https web archive org web 20201
  • 在 WPF 中,PreviewTextInput 是否始终只给出单个字符?

    处理时PreviewTextInputWPF 中 TextBox 的事件 可以使用事件参数的 Text 属性 TextCompositionEventArgs 包含除通过键盘输入的最后一个字符以外的字符 我对它进行了彻底的测试 它似乎只包含
  • 如何在 ios7 中的 UITextfield 中禁用复制/粘贴选项

    I tried implementation UITextField DisableCopyPaste BOOL canPerformAction SEL action withSender id sender return NO retu
  • 使用 Spring MVC,接受带有错误 JSON 的 POST 请求会导致返回默认的 400 错误代码服务器页面

    我正在开发 REST api 接收带有错误 JSON 的 POST 消息 例如 sdfasdfasdf 会导致 Spring 返回 400 错误请求错误的默认服务器页面 我不想返回页面 我想返回自定义 JSON 错误对象 当使用 Excep
  • EXT JS中有全局变量吗

    在 java 和 C 中 我们可以全局存储变量并从项目中的任何位置访问它的值 比如说 我在一个名为Residence我正在保存residenceNumber这是一个INT到一个名为的全局变量houseNumberGlobalVariable
  • Magento:如何获取产品中使用的属性值

    如何获取至少在一种产品中使用的某些属性的属性值 我相信您并不是试图读取产品模型的属性值 而是获取特定属性的所有使用值的列表 朴素 属性 普通属性是所有不使用select or multiselect用于输入 但是文本或文本区域字段或类似的内
  • Java中遍历所有文件

    我想让我的程序打印我计算机上所有文件的巨大列表 我的问题是 当我希望它打印位于我的计算机上的所有文件时 它仅打印第一个硬盘驱动器的第一个文件夹中的文件 有什么想法我在这里做错了什么吗 谢谢 这是我使用的代码 Main import java