Java - 显示根目录的相对路径

时间:2014-10-06 05:58:46

标签: java path

我正在编写一个小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方法来显示该部分。 谢谢!

1 个答案:

答案 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);
}