Есть ли способ однозначно идентифицировать файл на sdcard отдельно от абсолютного пути файла? Класс File имеет унаследованный метод hashCode()
, но я не уверен, что все в порядке.Идентифицировать файл однозначно на SD-карте
ответ
Путь к файлу должен быть достаточно уникальным для практически всех целей.
Я уверен, что hashCode()
основан на внутреннем представлении и может измениться.
Вы всегда можете проверить код java и посмотреть, что делает функция hashCode()
. Из File class source code:
- хэш-код():
Вычисляет хэш-код для этого абстрактного пути. Поскольку равенство абстрактные пути являются по своей сути зависящими от системы, то есть вычисление их хэш-кодов. В системах UNIX хеш-код абстрактного пути равен исключительной или хэш-коду его строки имени пути и десятичному значению 1234321. В системах Microsoft Windows код хэша равен исключительной или хэш-код его строка имени пути, преобразованная в нижний регистр, и десятичное значение значение 1234321. Локаль не учитывается на , уменьшая строку имени пути.
hashCode()
создает хэш-базу для имени пути, поэтому вы можете использовать ее для сравнения 2-х файлов вместо
getAbsolutePath()
.
Hashcode не гарантирует уникальность, но в соответствии с документацией он используется для сравнения двух файлов при проверке равенства. Для чего вы хотите его использовать? –