2013-05-24 4 views
0

Есть ли способ однозначно идентифицировать файл на sdcard отдельно от абсолютного пути файла? Класс File имеет унаследованный метод hashCode(), но я не уверен, что все в порядке.Идентифицировать файл однозначно на SD-карте

+0

Hashcode не гарантирует уникальность, но в соответствии с документацией он используется для сравнения двух файлов при проверке равенства. Для чего вы хотите его использовать? –

ответ

0

Путь к файлу должен быть достаточно уникальным для практически всех целей.

Я уверен, что hashCode() основан на внутреннем представлении и может измениться.

0

Вы всегда можете проверить код java и посмотреть, что делает функция hashCode(). Из File class source code:

  • хэш-код():

    Вычисляет хэш-код для этого абстрактного пути. Поскольку равенство абстрактные пути являются по своей сути зависящими от системы, то есть вычисление их хэш-кодов. В системах UNIX хеш-код абстрактного пути равен исключительной или хэш-коду его строки имени пути и десятичному значению 1234321. В системах Microsoft Windows код хэша равен исключительной или хэш-код его строка имени пути, преобразованная в нижний регистр, и десятичное значение значение 1234321. Локаль не учитывается на , уменьшая строку имени пути.

Как вы можете видеть, функция hashCode() создает хэш-базу для имени пути, поэтому вы можете использовать ее для сравнения 2-х файлов вместо getAbsolutePath().