gpt4 book ai didi

java - 如何在java上整齐地提取子路径以考虑根文件夹和无根文件夹

转载 作者:太空宇宙 更新时间:2023-11-04 14:12:43 25 4
gpt4 key购买 nike

我有一个Path对象和一个String对象,Path对象代表文件名所代表的起始路径的一部分

例如,对于文件名/Music/Beatles/Help.mp3,Path 对象可能是

/
/Music
/Music/Beatles

这个简单的方法返回路径减去基本文件夹的部分

public String getPathRemainder(Path path, String filename)
{
if(baseFolder.getNameCount()==0)
{
return song.getFilename().substring(baseFolder.toString().length());
}
else
{
return song.getFilename().substring(baseFolder.toString().length()+File.separator.length());
}

Music/Beatles/Help.mp3
Beatles/Help.mp3
Help.mp3

虽然简单但相当困惑,因为我必须考虑到这样一个事实:如果基本文件夹是根文件夹,它以“/”结尾(在unix上),但不是没有根路径。

我确信有一个更简洁的方法,但我看不到它。

最佳答案

使用java.nio从 Java 7 开始可用:

Path file = Paths.get("/Music/Beatles/Help.mp3");

Path dir1 = Paths.get("/");
Path dir2 = Paths.get("/Music");
Path dir3 = Paths.get("/Music/Beatles");

System.out.println(dir1.relativize(file));
System.out.println(dir2.relativize(file));
System.out.println(dir3.relativize(file));

你得到:

Music/Beatles/Help.mp3
Beatles/Help.mp3
Help.mp3

关于java - 如何在java上整齐地提取子路径以考虑根文件夹和无根文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28110924/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com