【发布时间】:2020-10-07 20:57:29
【问题描述】:
我正在尝试读取所有目录和文件,包括子目录。每次找到文件和目录时,程序都会打印文件夹内的内容。如果它找到另一个目录并打印其内容,这将继续。当目录中有多个文件夹时,我无法获取其他目录数据。我的代码只有在只有一种方式时才有效。这是我的代码。 DirFolder3 也应该打印其内容。这个程序也不应该使用递归。输出应该类似于 DirFolder1、DirFolder2 和 DirFolder4 目录。感谢您的帮助。
主文件:
import java.io.IOException;
public class DirectoryRead {
public static void main(String[] args) throws IOException {
DirInfo scan = new DirInfo();
scan.readDirectory();
}
}
阅读类:
import java.io.File;
import java.io.IOException;
public class DirInfo {
String dirName = "";
String childName = "";
String fileName = "";
public void readDirectory() throws IOException {
//starting directory
File dir = new File("C:\\DirFolder1");
//if a directory (parent) exists, loop
while (dir.exists()) {
//print the parent/current directory name
dirName = dir.getName();
System.out.println(dirName);
//list all files in current directory
File [] files = dir.listFiles();
//loop through array and see if a directory or file exists
for (int i = 0; i < files.length; i++) {
//if there's a directory, print name
if (files[i].isDirectory()) {
childName = files[i].getName();
System.out.println("\t" + childName);
}
//if there's a file, print name
if (files[i].isFile()) {
fileName = files[i].getName();
System.out.println("\t" + fileName);
}
}
//make child directory the new parent/current directory and repeat
dir = new File(dir, childName);
}
}
}
输出:
DirFolder1
DirFolder2
Sample File1.txt
DirFolder2
DirFolder3
DirFolder4
Document2.txt
Document3.txt
DirFolder4
Dir4TextFile.txt
【问题讨论】:
-
您期待什么输出?为了清楚起见,将此添加到问题中。
标签: java file directory iteration