0

我想写一个简短的应用程序。它必须浏览文件以查找文件夹。如果它找到一个文件夹,它会在控制台上写入文件夹的名称并写入文件夹。接下来写入文件夹中包含的 txt 文件的控制台名称。

我的代码:

import java.io.File;

public class test {
    public static void search(File f) {

        File[] tab = f.listFiles();
        for (File file1 : tab) {
            if (file1.isDirectory()) {
                search(file1);
            } else {
                if (Txt(file1)) {
                    System.out.println("+ " + file1);
                }
            }
        }
    }

    public static boolean Txt(File f) {
        return f.getName().substring(f.getName().length() - 4).equals(".txt");
    }

    public static void main(String[] args) {
        try {
            File f = new File("/home/mati/Pulpit");
            search(f);
        } catch (Exception e) {
        }

    }
}

代码结果:

+ New Folder
    - aaa.txt
    - abc.txt
    - abf.txt
+ New Folder2
    - abgh.txt

我的程序只写txt文件,我不知道如何修复它......

4

1 回答 1

0

两件事:首先,要显示文件夹名称,您需要在带有“if (file1.isDirectory())”条件的代码分支中添加 System.out。您已经在“else”部分中有一个 System.out,这就是显示文件名的原因。

其次,如果您在文件夹中有文件夹,这可能不会按您希望的方式工作。所有文件夹都将以一种缩进级别显示,所有文件都将以另一种缩进级别显示。但是您将无法看到哪些文件夹嵌套在其他文件夹中。

于 2013-01-15T21:46:55.807 回答