0

Java 中的文件对象不支持字符破折号“-”(unicode \u2013)。它会自动将破折号字符转换为连字符“-”(unicode \u002D)。

我正在使用ScmProvider.list方法:

ListScmResult list(ScmRepository repository, ScmFileSet fileSet, 
                      boolean recursive, ScmVersion version) 

列出存储库中存在的 fileSet 的每个元素(文件和目录)。

在文件集中,其中一项(SCM 文件)将带有短划线的 repo 项替换为普通连字符。

我正在使用 Java 1.6 版。这有什么限制吗?

4

1 回答 1

1

您的意思是您认为这会java.io.File自动将字符\u2013转换为常规连字符(代码\u002D)吗?这不是真的,至少在我运行 Oracle Java 6 update 35 的 Windows 7 机器上不是这样。

我尝试了以下代码。它创建两个文件,具有不同的文件名;一个带有长破折号,一个带有常规破折号。

new File("C:\\Temp\\Hello\u2013World").createNewFile();
new File("C:\\Temp\\Hello-World").createNewFile();

因此,无论您看到什么,都不是由java.io.File.

于 2012-10-17T12:23:50.857 回答