2

我所做的 Java 工作 100% 是在 Android 上完成的。在构建文件路径时,我总是确保使用File.pathSeparator File.separatorChar 而不是“/”。

什么决定了 File.pathSeparator 的值?是否有任何 Android 设备File.pathSeparator File.separatorChar 不会是 "/" ?

4

2 回答 2

1

根据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平台上使用,它会弄清楚它需要在内部使用什么。

于 2012-08-08T20:12:21.417 回答
1

我认为你的意思是对File.separatorFile.separatorChar?如果您查看文档,它会指出:

public static final char separatorChar

用于分隔文件名中的组件的系统相关字符 ('/')。使用这个(而不是硬编码'/')有助于移植到其他操作系统。

该字段从系统属性“file.separator”初始化。以后对该属性的更改将不会影响此字段或此类。

它依赖于系统。从技术上讲,有人可以在非 Linux 平台上实现 Android(参见BlueStacks),其中路径分隔符不是“/”。在实践中,我想您可以毫无问题地使用“/”,但使用这些字段是一个好习惯。

于 2012-08-08T20:14:58.533 回答