0
我正在编写一个小的Java
程序以递归方式列出根目录中的文件。这是我使用的代码。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
我的问题是,我可以只显示相对路径没有“根direcotry”?
即我想要实现的是显示:
/1.txt
/2.txt
/t1/a.txt
/t2/b.txt
/t4/c.txt
我不想用任何String
方法,只是不显示的那部分。 谢谢!
如果什么子目录被命名为 “根direcotry”? – 2014-10-06 06:21:30
@JBNizet它是OP用于根目录的占位符,正如您在问题中所看到的。 – Jens 2014-10-06 06:22:35
你不明白。想象一下'rootDir'是用“foo”初始化的。假设foo目录包含'foo/foo/foo/foo.txt'。现在想象一下rootDir是用'/'初始化的(因为你想显示根目录下的所有东西)。在这两种情况下,您的代码都会失败。 – 2014-10-06 06:32:21