我所做的 Java 工作 100% 是在 Android 上完成的。在构建文件路径时,我总是确保使用File.pathSeparator File.separatorChar 而不是“/”。
什么决定了 File.pathSeparator 的值?是否有任何 Android 设备File.pathSeparator File.separatorChar 不会是 "/" ?
根据File.java 的源代码,pathSeparator
是从 char 中提取的System.getProperty("path.separator", ":").charAt(0)
。separator
另一方面,来自System.getProperty("file.separator", "/").charAt(0)
。
因为 Android 是基于 Linux 的,所以它应该始终是/
. 但是,通过使用上面的默认值,我看到:
了出现的故障(Motorola Droid;参见错误报告)。
当我编码时,我总是使用/
... 老实说,我认为没有必要引用File
该类(这主要用于非 Android 工作)。/
我认为最好坚持下去。
此外,根据this answer(与Java有关,而不仅仅是Android),/
可以安全地在所有Java平台上使用,它会弄清楚它需要在内部使用什么。
我认为你的意思是对File.separator
的File.separatorChar
?如果您查看文档,它会指出:
public static final char separatorChar
用于分隔文件名中的组件的系统相关字符 ('/')。使用这个(而不是硬编码'/')有助于移植到其他操作系统。
该字段从系统属性“file.separator”初始化。以后对该属性的更改将不会影响此字段或此类。
它依赖于系统。从技术上讲,有人可以在非 Linux 平台上实现 Android(参见BlueStacks),其中路径分隔符不是“/”。在实践中,我想您可以毫无问题地使用“/”,但使用这些字段是一个好习惯。