我需要在一個字符串中連接幾個絕對文件路徑。 但是,如果我使用字符,這可能是文件名或路徑的一部分,字符串將被混淆。可以使用哪種分離器?在字符串中連接絕對文件路徑
現在我用File.pathSeparator和Windows 7是 ';'。 但是這個字符可以是文件名的一部分。
Semicolons are legal in NTFS file paths.
我需要在一個字符串中連接幾個絕對文件路徑。 但是,如果我使用字符,這可能是文件名或路徑的一部分,字符串將被混淆。可以使用哪種分離器?在字符串中連接絕對文件路徑
現在我用File.pathSeparator和Windows 7是 ';'。 但是這個字符可以是文件名的一部分。
Semicolons are legal in NTFS file paths.
可以使用File.pathSeparator:
與系統有關的路徑分隔符,表示爲方便起見字符串 。該字符串包含單個字符,即pathSeparatorChar:
與系統相關的路徑分隔符字符。該字段爲 ,初始化爲包含系統 屬性path.separator的值的第一個字符。這個字符用於分隔作爲路徑列表給出的一系列文件中的文件名 。在UNIX系統上,這個 字符是':';在Microsoft Windows系統上它是';'。
的ASCII NULL字符\0
不能在Windows或Unix(包括Mac)路徑名的一部分,所以你可能可以使用作爲分隔符。
NUL字符不能在文件路徑使用,因爲它是在C中的字符串終止字符,以及用於這些操作系統的API是定義爲使用字符串來表示文件路徑一個C庫。
如果你想使用一個可打印字符作爲分隔符,你將不得不使用轉義碼方案。最簡單的一種是將分隔符加倍:假設您使用#作爲分隔符;要將路徑添加到列表中,請用##替換已存在於路徑中的任何#號。
使用| (管道)符號 –
爲什麼不首先使用集合? –
我正在考慮管道符號,但我不確定其他文件系統。 對File.pathSeparator返回';'仍然感興趣但路徑可以包含它。 –