我正在使用Windows 7。 这是我的代码:
public class DriveLettersList {
public static void main( String[] args ) {
System.setProperty( "file.separator", "/" );
System.out.println( System.getProperty( "file.separator" ) );
System.out.println( Paths.get( "hello", "my", "word" ) );
}
输出令人困惑:
/
hello\my\word
为什么Paths.get会返回Windows的默认路径分隔符?
答案 0 :(得分:4)
有关字符串如何加入的详细信息是提供者特定的 通常他们将使用
name-separator
加入 分离器。
可以使用
检索名称分隔符FileSystems.getDefault().getSeparator()
在WindowsFileSystem
的Windows上,implemented as
@Override
public String getSeparator() {
return "\\";
}
使用此FileSystem
实现,您无法更改它。
这在Unix系统上可能有所不同。实际上,it seems it isn't
public final String getSeparator() {
return "/";
}