我所做的100%Java工作都在Android上。在构造文件路径时,我总是确保使用 File.pathSeparator File.separatorChar而不是“/".
什么决定File.pathSeperator的值?是否有任何Android设备 File.pathSeparator File.separatorChar不是“/”?
答案 0 :(得分:1)
根据source code of File.java,从pathSeparator
中提取System.getProperty("path.separator", ":").charAt(0)
。另一方面,separator
来自System.getProperty("file.separator", "/").charAt(0)
。
由于Android是基于Linux的,因此应始终为/
。但是,我已经看到了:
出现的故障(Motorola Droid;请参阅bug report),使用上面的默认值。
当我编码时,我总是使用/
...说实话,我认为没有必要引用File
类(这主要是针对非Android工作)。我认为最好坚持/
。
此外,根据this answer(与Java有关,而不仅仅是Android),/
可以安全地在所有Java平台上使用,并且它将弄清楚它需要在内部使用。
答案 1 :(得分:1)
我认为你的意思是File.separator
和File.separatorChar
对吗?如果您查看docs,请说明:
public static final char separatorChar
与系统相关的字符,用于分隔文件名('/')中的组件。使用它(而不是硬编码'/')有助于移植到其他操作系统。
此字段从系统属性“file.separator”初始化。稍后对该属性的更改将不会对此字段或此类产生任何影响。
它取决于系统。从技术上讲,有人可以在非Linux平台上实现Android(参见BlueStacks),其中路径分隔符不是“/”。在实践中,我想你可以在没有问题的情况下使用'/',但是使用这些字段是个好习惯。