我正在编写一个小Java
程序,以递归方式列出根目录中的文件。这是我使用的代码。
public static void displayDirectoryContents(File dir) {
File[] files = dir.listFiles();
for (File file : files) {
if (file.isDirectory()) {
displayDirectoryContents(file);
} else {
System.out.println(file.getPath());
}
}
}
public static void main(String[] args) throws IOException {
File currentDir = new File("root-direcotry");
displayDirectoryContents(currentDir);
}
我得到的结果是:
root-direcotry/1.txt
root-direcotry/2.txt
root-direcotry/t1/a.txt
root-direcotry/t2/b.txt
root-direcotry/t4/c.txt
我的问题是,我可以只显示没有“ root-direcotry ”的相对路径吗?
即。我想要实现的是:
/1.txt
/2.txt
/t1/a.txt
/t2/b.txt
/t4/c.txt
我不想使用任何String
方法来显示该部分。
谢谢!
答案 0 :(得分:1)
试试这个:
public static void displayDirectoryContents(File dir, String rootDir) {
File[] files = dir.listFiles();
for (File file : files) {
if (file.isDirectory()) {
displayDirectoryContents(file, rootDir);
} else {
System.out.println(file.getPath().replaceFirst(rootDir, ""));
}
}
}
public static void main(String[] args) throws IOException {
String rootDir = <rootDir>;
File currentDir = new File(rootDir);
displayDirectoryContents(currentDir, rootDir);
}