Java中列出目录和子目录中的所有文件

2024-04-06

列出 1000 多个目录和子目录中的文件名的最快方法是什么?

编辑; 我当前使用的代码是:

import java.io.File;

public class DirectoryReader {

  static int spc_count=-1;

  static void Process(File aFile) {
    spc_count++;
    String spcs = "";
    for (int i = 0; i < spc_count; i++)
      spcs += " ";
    if(aFile.isFile())
      System.out.println(spcs + "[FILE] " + aFile.getName());
    else if (aFile.isDirectory()) {
      System.out.println(spcs + "[DIR] " + aFile.getName());
      File[] listOfFiles = aFile.listFiles();
      if(listOfFiles!=null) {
        for (int i = 0; i < listOfFiles.length; i++)
          Process(listOfFiles[i]);
      } else {
        System.out.println(spcs + " [ACCESS DENIED]");
      }
    }
    spc_count--;
  }

  public static void main(String[] args) {
    String nam = "D:/";
    File aFile = new File(nam);
    Process(aFile);
  }

}

正如这个答案显示在 google 顶部一样,我添加了一个 java 7 nio 解决方案来列出所有文件和目录,这在我的系统上花费了大约 80% 的时间。

try {
    Path startPath = Paths.get("c:/");
    Files.walkFileTree(startPath, new SimpleFileVisitor<Path>() {
        @Override
        public FileVisitResult preVisitDirectory(Path dir,
                BasicFileAttributes attrs) {
            System.out.println("Dir: " + dir.toString());
            return FileVisitResult.CONTINUE;
        }

        @Override
        public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) {
            System.out.println("File: " + file.toString());    
            return FileVisitResult.CONTINUE;
        }

        @Override
        public FileVisitResult visitFileFailed(Path file, IOException e) {
            return FileVisitResult.CONTINUE;
        }
    });
} catch (IOException e) {
    e.printStackTrace();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java中列出目录和子目录中的所有文件 的相关文章

随机推荐

  • 架构中的 mongoose geojson,“无法提取地理密钥”错误

    我有一个具有已定义架构的 mongodb 集合 并且我更新了此架构以包括纬度 经度坐标 旧版本 var schema mongoose Schema id String name String address String city Str
  • 三个js如何手动添加三角形到BufferGeometry

    我一直在尝试找到使用 Three js 更改网格顶点的最快方法 我发现 如果我更改 mesh geometry attributes position array 的部分内容 然后设置 mesh geometry attributes po
  • scala 2.10中通过反射调用构造函数

    在 scala 2 10 M4 中调用类的构造函数的最佳实践是什么 回答我自己的问题 调用构造函数与调用方法不同 这是在 scala 2 10 中执行此操作的正确方法 import reflect runtime universe impo
  • 安卓。一起滚动 2 个列表视图

    好的 我想要实现的是一种与 Excel 中的冻结窗格具有相同效果的布局 也就是说 我想要一个与主 ListView 一起水平滚动的标题行 以及与主 ListView 一起垂直滚动的左侧 ListView 在另一个维度滚动时 标题行和左侧列表
  • Selenium:有没有可以与 Selenium Server/RC 集成的 JS (JavaScript) 代码覆盖工具

    Selenium 有没有可以与 Selenium Server RC 集成的 JS JavaScript 代码覆盖工具 Hi 我想通过我的 Selenium 测试套件完成 JS 代码覆盖率 是否有任何代码覆盖率工具可以与我现有的 selen
  • 带有 PHP 后端的日志套件?

    有人知道 PHP 应用程序的通用日志记录套件吗 我所说的 套件 是指一个轻量级的日志函数库以及成熟的后端来查看它们 后端必须是可配置的 并使用以下功能显示日志条目 按日期过滤 按事件过滤 警告 错误 自定义事件 按类别过滤 按用户过滤 按关
  • 安装 symfony-cmf-standard 时“执行缓存时发生错误:clear --no-warmup”

    我试图使用以下命令安装 symfony cmf standard composer phar create project symfony cmf standard edition symfony cmf standard stabilit
  • Int[].Contains 在 EF6 中不起作用

    我有一个奇怪的问题 基本上我有这个代码 var langauges from l in context languages where Model LanguageIDs Contains l LanguageID select l ToL
  • 显示 searchResults TableView 时隐藏 UITableView

    我有一个UITableView with a searchDisplayController实施的 我有 tableView backgroundColor UIColor clearColor and self searchDisplay
  • WordPress 网站迁移 - 图标丢失

    我最近按照以下步骤将本地站点迁移到临时服务器https codex wordpress org Moving WordPress https codex wordpress org Moving WordPress一切似乎都工作正常 最初
  • 延迟任务开始的正确方法

    我想安排一个任务在 x 毫秒内启动 并能够在它开始之前 或在任务开始时 取消它 第一次尝试是这样的 var cancelationTokenSource new CancellationTokenSource var token cance
  • 在日志中包含 Active Record 查询的作用

    Rails 现在支持多个数据库角色 默认情况下 https guides rubyonrails org active record multiple databases html using manual connection switc
  • powershell:如何从 [ref] 变量写入主机值

    我是 Powershell 新手 我正在尝试弄清楚如何从函数内打印 ref 变量的值 这是我的测试代码 function testref ref obj1 obj1 value obj1 value 5 write host the new
  • MongoDB 限制查找结果

    如何查询集合并限制返回的结果 假设我有一个包含 500M 文档的数据库 但我只想搜索并返回前 10 个匹配项 而不必搜索整个集合 出于性能原因 理想情况下 我可以在 O m n 时间内返回第 n 到 m 个结果 如果这可能或如何做到 有什么
  • ASP.Net Core 错误 JSON

    我正在玩一点 ASP NET Core 我正在创建一个基本的 webapi 我想在出现问题时显示 JSON 错误 打印屏幕在屏幕上显示我想要的内容 唯一的问题是发送时状态码为 200 catch NullReferenceException
  • 在 Visual Studio 调试器中查看命名空间全局变量?

    在 Visual Studio 2008 中调试非托管 C 项目时 我偶尔想查看全局变量的值 我们没有很多这些 但那些都在名为 全局 的名称空间中声明 例如 namespace global int foo bool bar 问题是 当代码
  • Dockerfile 中的 setfacl 没有效果

    我想在使用 setfacl 构建 docker 映像时为某些文件夹设置默认 acl 但它没有效果 默认 acl 不变 我的目标是在 opt 中创建的每个文件都必须对任何用户都具有 rwX 权限 因为该映像稍后将使用任意 uid 运行 并且需
  • 如何查看 conda 环境的创建日期?

    我创建了四个不同的版本conda virtual environments envs 用于图像处理任务 每个环境包括GDAL and OpenCV 以及相关库和依赖项的一些子集 我想将图像处理环境列表剔除到最近创建的一个 它将拥有我使用的最
  • 在整个项目上运行 CPPlint

    我想跑cplint py https github com google styleguide tree gh pages cpplint在我的整个项目中 不是通过单个文件来获取项目中所有 C C 文件的报告 如何在 macOS 和 Win
  • Java中列出目录和子目录中的所有文件

    列出 1000 多个目录和子目录中的文件名的最快方法是什么 编辑 我当前使用的代码是 import java io File public class DirectoryReader static int spc count 1 stati