我想写一个简短的应用程序。它必须浏览文件以查找文件夹。如果它找到一个文件夹,它将在控制台中写入文件夹的名称并写入该文件夹。下一步写入包含在文件夹中的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文件,我不知道如何修复它…
两件事:首先,要显示文件夹名称,您需要添加System。在代码分支中使用"if (file1.isDirectory())"条件。你有一个系统。在"else"部分已经出现了,这就是文件名被显示的原因。
其次,如果你的文件夹中有文件夹,这可能不会像你想的那样工作。所有文件夹将显示一个级别的缩进,所有文件将显示另一个级别的缩进。但是您将无法看到哪些文件夹嵌套在其他文件夹中