【发布时间】:2013-05-24 20:51:23
【问题描述】:
除了文件的绝对路径之外,有没有办法唯一标识 sdcard 上的文件? File 类确实有一个继承方法hashCode(),但我不确定这是否可以。
【问题讨论】:
-
哈希码不能保证是唯一的,但根据文档,它用于在检查相等性时比较两个文件。你想用它做什么?
标签: android file android-sdcard
除了文件的绝对路径之外,有没有办法唯一标识 sdcard 上的文件? File 类确实有一个继承方法hashCode(),但我不确定这是否可以。
【问题讨论】:
标签: android file android-sdcard
文件路径应该是唯一的,足以满足几乎所有目的。
我确定hashCode() 是基于内部表示并且可能会改变。
【讨论】:
您可以随时查看java 源代码并查看hashCode() 函数在做什么。来自File class source code:
计算此抽象路径名的哈希码。因为平等 抽象路径名本质上是系统相关的,计算也是 他们的哈希码。在 UNIX 系统上,抽象的哈希码 路径名等于哈希码的异或 其路径名字符串和十进制值 1234321. 在 Microsoft Windows 系统上,哈希 code 等于哈希码的异或 其路径名字符串转换为小写和十进制 值 1234321。不考虑区域设置 小写路径名字符串。
hashCode() 函数正在基于路径名创建哈希,因此您可以使用它来比较 2 个文件,而不是使用 getAbsolutePath()。
【讨论】: