Java 以字符串形式连接绝对文件路径

Java 以字符串形式连接绝对文件路径,java,concatenation,filepath,Java,Concatenation,Filepath,我需要在一个字符串中连接几个绝对文件路径。 但如果我使用字符,这可能是文件名或路径的一部分,字符串将被弄乱。可以使用哪种分离器 现在我使用File.pathSeparator,对于Windows 7,它是“;”。 但是这个字符可以是文件名的一部分 在Windows或Unix(包括Mac)上,ASCII NUL字符\0不能是路径名的一部分,因此您可能可以将其用作分隔符 NUL字符不能在文件路径中使用,因为它是C中的字符串终止符,并且这些操作系统的API定义为使用字符串表示文件路径的C库 如果要使

我需要在一个字符串中连接几个绝对文件路径。 但如果我使用字符,这可能是文件名或路径的一部分,字符串将被弄乱。可以使用哪种分离器

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


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

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

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

您可以使用:

依赖于系统的路径分隔符,表示为字符串 为了方便。此字符串包含单个字符,即:

依赖于系统的路径分隔符字符。这个领域是 初始化为包含系统值的第一个字符 属性路径。分隔符。此字符用于分隔文件名 在作为路径列表给定的文件序列中。在UNIX系统上,此 字符为“:”;在Microsoft Windows系统上,它是“;”


为什么不首先使用集合?我现在正在考虑管道符号,但我不确定其他文件系统。当File.pathSeparator返回“;”时仍感兴趣但路径可以包含它。我现在使用它。但是,例如,Windows7中的文件名可以有“;”。不幸的是,没有,虽然路径分隔符用于分隔路径,但在Unix上,没有任何东西可以阻止您在文件名中使用冒号。@YegoshinMaxim您可以检查路径是否正确,直到
存在,如果不存在,则您知道它是文件名的一部分。顺便说一句,我用它工作了很长时间,从来没有遇到过一个带有
的文件;;:*|\^touch';.:*?\^'