0

我需要在一个字符串中连接多个绝对文件路径。但是如果我使用字符,那可能是文​​件名或路径的一部分,字符串会被弄乱。可以使用哪种分隔符?

现在我使用 File.pathSeparator,对于 Windows 7,它是 ';'。但是这个字符可以是文件名的一部分。

所以问题

NTFS 文件路径中的分号是合法的。

4

2 回答 2

2

您可以使用File.pathSeparator

系统相关的路径分隔符,为方便起见表示为字符串。该字符串包含一个字符,即pathSeparatorChar

系统相关的路径分隔符字符。该字段被初始化为包含系统属性 path.separator 值的第一个字符。此字符用于分隔作为路径列表给出的文件序列中的文件名。在 UNIX 系统上,这个字符是 ':';在 Microsoft Windows 系统上它是 ';'。

于 2013-03-29T09:39:18.767 回答
0

ASCII NUL 字符\0不能成为 Windows 或 Unix(包括 Mac)上路径名的一部分,因此您可能可以将其用作分隔符。

NUL 字符不能用于文件路径,因为它是 C 中的字符串终止符,并且这些操作系统的 API 被定义为使用字符串表示文件路径的 C 库。

如果您想使用可打印字符作为分隔符,则必须使用转义码方案。最简单的方法之一是将分隔符加倍:假设您使用 # 作为分隔符;要将路径添加到列表中,请将路径中已经存在的任何 # 替换为 ##。

于 2013-03-29T09:39:00.900 回答