【问题标题】:Identify a file uniquely on the sdcard唯一标识 sdcard 上的文件
【发布时间】:2013-05-24 20:51:23
【问题描述】:

除了文件的绝对路径之外,有没有办法唯一标识 sdcard 上的文件? File 类确实有一个继承方法hashCode(),但我不确定这是否可以。

【问题讨论】:

  • 哈希码不能保证是唯一的,但根据文档,它用于在检查相等性时比较两个文件。你想用它做什么?

标签: android file android-sdcard


【解决方案1】:

文件路径应该是唯一的,足以满足几乎所有目的。

我确定hashCode() 是基于内部表示并且可能会改变。

【讨论】:

    【解决方案2】:

    您可以随时查看java 源代码并查看hashCode() 函数在做什么。来自File class source code

    • hashCode()

      计算此抽象路径名的哈希码。因为平等 抽象路径名本质上是系统相关的,计算也是 他们的哈希码。在 UNIX 系统上,抽象的哈希码 路径名等于哈希码的异或 其路径名字符串和十进制值 1234321. 在 Microsoft Windows 系统上,哈希 code 等于哈希码的异或 其路径名字符串转换为小写和十进制 值 1234321。不考虑区域设置 小写路径名字符串。

    如您所见,hashCode() 函数正在基于路径名创建哈希,因此您可以使用它来比较 2 个文件,而不是使用 getAbsolutePath()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-25
      • 2018-09-26
      • 2021-10-30
      • 2013-11-19
      • 2013-02-19
      相关资源
      最近更新 更多