如何從兩個(gè)絕對路徑(或URL)構(gòu)造Java中的相對路徑?給定兩條絕對路徑。/var/data/stuff/xyz.dat/var/data如何創(chuàng)建使用第二條路徑作為基礎(chǔ)的相對路徑?在上面的例子中,結(jié)果應(yīng)該是:./stuff/xyz.dat
3 回答

翻閱古今
TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超5個(gè)贊
String path = "/var/data/stuff/xyz.dat";String base = "/var/data";String relative = new File(base).toURI(). relativize(new File(path).toURI()).getPath();// relative == "stuff/xyz.dat"
java.nio.file.Path#relativize

偶然的你
TA貢獻(xiàn)1841條經(jīng)驗(yàn) 獲得超3個(gè)贊
import java.nio.file.Path;import java.nio.file.Paths;public class Test { public static void main(String[] args) { Path pathAbsolute = Paths.get("/var/data/stuff/xyz.dat"); Path pathBase = Paths.get("/var/data"); Path pathRelative = pathBase.relativize(pathAbsolute); System.out.println(pathRelative); }}
stuff/xyz.dat
添加回答
舉報(bào)
0/150
提交
取消