Java 以字符串形式连接绝对文件路径
我需要在一个字符串中连接几个绝对文件路径。 但如果我使用字符,这可能是文件名或路径的一部分,字符串将被弄乱。可以使用哪种分离器 现在我使用File.pathSeparator,对于Windows 7,它是“;”。 但是这个字符可以是文件名的一部分Java 以字符串形式连接绝对文件路径,java,concatenation,filepath,Java,Concatenation,Filepath,我需要在一个字符串中连接几个绝对文件路径。 但如果我使用字符,这可能是文件名或路径的一部分,字符串将被弄乱。可以使用哪种分离器 现在我使用File.pathSeparator,对于Windows 7,它是“;”。 但是这个字符可以是文件名的一部分 在Windows或Unix(包括Mac)上,ASCII NUL字符\0不能是路径名的一部分,因此您可能可以将其用作分隔符 NUL字符不能在文件路径中使用,因为它是C中的字符串终止符,并且这些操作系统的API定义为使用字符串表示文件路径的C库 如果要使
在Windows或Unix(包括Mac)上,ASCII NUL字符
\0
不能是路径名的一部分,因此您可能可以将其用作分隔符
NUL字符不能在文件路径中使用,因为它是C中的字符串终止符,并且这些操作系统的API定义为使用字符串表示文件路径的C库
如果要使用可打印字符作为分隔符,则必须使用转义码方案。最简单的方法之一是将分隔符加倍:假设使用#作为分隔符;要将路径添加到列表中,请将路径中已存在的任何路径替换为##。您可以使用:
依赖于系统的路径分隔符,表示为字符串
为了方便。此字符串包含单个字符,即:
依赖于系统的路径分隔符字符。这个领域是
初始化为包含系统值的第一个字符
属性路径。分隔符。此字符用于分隔文件名
在作为路径列表给定的文件序列中。在UNIX系统上,此
字符为“:”;在Microsoft Windows系统上,它是“;”
为什么不首先使用集合?我现在正在考虑管道符号,但我不确定其他文件系统。当File.pathSeparator返回“;”时仍感兴趣但路径可以包含它。我现在使用它。但是,例如,Windows7中的文件名可以有“;”。不幸的是,没有,虽然路径分隔符用于分隔路径,但在Unix上,没有任何东西可以阻止您在文件名中使用冒号。@YegoshinMaxim您可以检查路径是否正确,直到
代码>存在,如果不存在,则您知道它是文件名的一部分。顺便说一句,我用它工作了很长时间,从来没有遇到过一个带有的文件要创建名为;;:*|\^在Linux上,使用touch';.:*?\^'代码>