当前位置: 首页 > 面试题库 >

如何在Java中扫描文件夹?

韩良策
2023-03-14
问题内容

如何用Java递归列出文件夹中的所有文件?


问题答案:

不确定要如何表示树?无论如何,这是一个使用递归扫描整个子树的示例。文件和目录是相同的。请注意,File.listFiles()对于非目录返回null。

public static void main(String[] args) {
    Collection<File> all = new ArrayList<File>();
    addTree(new File("."), all);
    System.out.println(all);
}

static void addTree(File file, Collection<File> all) {
    File[] children = file.listFiles();
    if (children != null) {
        for (File child : children) {
            all.add(child);
            addTree(child, all);
        }
    }
}

Java
7提供了一些改进。例如,DirectoryStream一次提供一个结果-
调用者在执行操作之前不再需要等待所有I / O操作完成。这允许增量GUI更新,提前取消等。

static void addTree(Path directory, Collection<Path> all)
        throws IOException {
    try (DirectoryStream<Path> ds = Files.newDirectoryStream(directory)) {
        for (Path child : ds) {
            all.add(child);
            if (Files.isDirectory(child)) {
                addTree(child, all);
            }
        }
    }
}

请注意,可怕的空返回值已由IOException代替。

Java 7还提供了一个Tree
Walker

static void addTree(Path directory, final Collection<Path> all)
        throws IOException {
    Files.walkFileTree(directory, new SimpleFileVisitor<Path>() {
        @Override
        public FileVisitResult visitFile(Path file, BasicFileAttributes attrs)
                throws IOException {
            all.add(file);
            return FileVisitResult.CONTINUE;
        }
    });
}


 类似资料:
  • 问题内容: 我有一台服务器,该服务器的各个文件夹,子文件夹和子子文件夹中都有很多文件。 我正在尝试制作一个search.php页面,该页面将用于在整个服务器中搜索特定文件。如果找到文件,则返回位置路径以显示下载链接。 这是我到目前为止的内容: 如果文件位于我的域名的根目录下,则脚本可以正常工作…现在,我试图找到一种方法来使其也扫描子文件夹和子文件夹,但是我被卡在了这里。 问题答案: 有两种方法。

  • 问题内容: 我正在处理一个需要文件上传的应用程序,它还需要使用服务器上可用的防病毒软件扫描文件。 我听说Symantec可以为应用程序服务器提供abt APIS。 Situatuion就像,我将来需要在不同的地方部署应用程序。因此,我正在考虑放置一个配置文件,从该文件中获取可用的防病毒及其路径。 我想在服务器上使用任何可用的防病毒软件,然后再使用命令行,将文件名和结果传递回去。 我对传递文件和检索

  • 问题内容: 我要分割以下数据。 获取每个值: 1 167 2 ‘LT2A’ 45 ‘每周’ ‘1,2,3,4,5,6,7,8,9,10,11,12,13’ 我使用的扫描仪类来做到这一点,用 , 作为分隔符。但由于最后一个字符串,我遇到了问题。 因此,我想就如何拆分这些数据提出一些建议。 我也尝试过使用’作为分隔符,但字符串包含不带’的数据。 这个问题是非常适合我的需求的,但是如果有人可以给我一些建

  • 问题内容: 我找到了有关如何扫描条形码的教程。但是在我的应用程序中,我必须扫描QR码。如何在Android中扫描QR码? 问题答案: 和在

  • 这就是我想测试的方法 我的测试: 但是我在

  • 声纳扫描仪无法完成扫描。我检查了日志,我看到扫描卡在一个文件上,如下所示 信息:977/6093已分析文件,当前文件:C:\Projects\ABC\src\main\java。通用域名格式。化学机械抛光。rpt。汇报JAVA 扫描仪会一直打印此消息,扫描永远不会完成。这是最近的一个问题。我检查了该文件的历史记录,该文件没有任何更改。我最近更新了Sonar中的Java插件。我的服务器配置如下 So