第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何在Java中合并路徑?

如何在Java中合并路徑?

qq_笑_17 2019-10-06 16:17:55
System.IO.Path.Combine()在C#/。NET中是否有Java等效項(xiàng)?或任何代碼來實(shí)現(xiàn)這一目標(biāo)?此靜態(tài)方法將一個(gè)或多個(gè)字符串組合到路徑中。
查看完整描述

3 回答

?
炎炎設(shè)計(jì)

TA貢獻(xiàn)1808條經(jīng)驗(yàn) 獲得超4個(gè)贊

而不是讓所有內(nèi)容都基于字符串,您應(yīng)該使用旨在表示文件系統(tǒng)路徑的類。


如果您使用的是Java 7或Java 8,則應(yīng)強(qiáng)烈考慮使用java.nio.file.Path; Path.resolve可以用于將一條路徑與另一條路徑或字符串組合在一起。該P(yáng)aths輔助類是有用的。例如:


Path path = Paths.get("foo", "bar", "baz.txt");

如果您需要迎合Java-7之前的環(huán)境,則可以使用java.io.File,例如:


File baseDirectory = new File("foo");

File subDirectory = new File(baseDirectory, "bar");

File fileInDirectory = new File(subDirectory, "baz.txt");

如果以后希望將其作為字符串返回,則可以調(diào)用getPath()。確實(shí),如果您真的想模仿Path.Combine,則可以編寫如下內(nèi)容:


public static String combine(String path1, String path2)

{

    File file1 = new File(path1);

    File file2 = new File(file1, path2);

    return file2.getPath();

}


查看完整回答
反對(duì) 回復(fù) 2019-10-06
?
幕布斯6054654

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超7個(gè)贊

在Java 7中,您應(yīng)該使用resolve:


Path newPath = path.resolve(childPath);

盡管NIO2 Path類對(duì)于使用不必要的不同API的File似乎有點(diǎn)多余,但實(shí)際上它更優(yōu)雅,更強(qiáng)大。


請(qǐng)注意,Paths.get()(根據(jù)其他人的建議)并沒有帶有的重載Path,并且這樣做Paths.get(path.toString(), childPath)與并不相同resolve()。從Paths.get()文檔:


請(qǐng)注意,盡管此方法非常方便,但使用它將意味著假定對(duì)默認(rèn)FileSystem的引用并限制了調(diào)用代碼的實(shí)用性。因此,不應(yīng)在旨在靈活重用的庫代碼中使用它。一種更靈活的選擇是使用現(xiàn)有的Path實(shí)例作為錨點(diǎn),例如:


Path dir = ...

Path path = dir.resolve("file");

對(duì)姐妹的作用resolve是優(yōu)異的relativize:


Path childPath = path.relativize(newPath);


查看完整回答
反對(duì) 回復(fù) 2019-10-06
?
PIPIONE

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超9個(gè)贊

自從喬恩(Jon)的原始答案以來,我就已經(jīng)知道了很長時(shí)間,但是我對(duì)OP有類似的要求。


通過擴(kuò)展Jon的解決方案,我提出了以下內(nèi)容,它將采用一個(gè)或多個(gè)路徑段,而您可以將其扔給它。


用法


Path.combine("/Users/beardtwizzle/");

Path.combine("/", "Users", "beardtwizzle");

Path.combine(new String[] { "/", "Users", "beardtwizzle", "arrayUsage" });

在這里為其他有類似問題的人編碼


public class Path {

    public static String combine(String... paths)

    {

        File file = new File(paths[0]);


        for (int i = 1; i < paths.length ; i++) {

            file = new File(file, paths[i]);

        }


        return file.getPath();

    }

}


查看完整回答
反對(duì) 回復(fù) 2019-10-06
  • 3 回答
  • 0 關(guān)注
  • 4865 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)