2015-10-22 27 views
4

這感覺就像它應該是直線前進,但我似乎可以找到一個優雅的解決方案,而無需轉換爲FileJava nio:如何將擴展添加到絕對路徑?

給出一個Path

Path path = Paths.get("https://stackoverflow.com/a/b/foo") 

怎麼辦獲取路徑/a/b/foo.bar?無論原始路徑是相對路徑還是絕對路徑,subpath都將返回相對路徑。

我不想使用額外的庫。但是,也許這是唯一的方法?

+1

字符串連接爲Paths.get()會做什麼?如:path.getPath()。toString()+「.bar」 –

+0

是的,我想所以...轉換爲字符串,然後concatenate – jm1234567890

+0

讓我知道它是否有效,我會添加爲答案。 :) –

回答

10

要更改Path的文件名,使用的resolveSibling()方法之一:

其中一個文件名必須是這是非常有用取代與另一個文件名。

使用此方法保證了結果Path對象是相同FileSystem作爲源Path對象。

因此,爲了擴展".bar"添加到Path:在參數

path = path.resolveSibling(path.getFileName() + ".bar");