Недавно я обнаружил, что изображения, сделанные с помощью Hangouts Google, иногда добавляют: nopm: до конца имени файла. Например, DCIM/Camera/IMG_20141212_123123: nopm: .jpgИзображения с: nopm: in filename
Это вызывает у меня массу проблем с анализом. Одним из самых больших было то, что когда я создал объект File из этого пути и попытался file.exists(), я ПОЛУЧИЛ ЛОЖЬ !!!!!
Моя конечная цель в том, что когда я сталкиваюсь с одним из следующих: nopm: images, я бы просто переименовал его на устройстве и продолжил обработку в обычном режиме.
Вот мой код:
public static void checkForNopm(File file) {
final String path = file.getPath();
if (path.contains(":nopm:")) {
final File newfile = new File(file.getPath().replace(":nopm:",""));
file.renameTo(newfile);
}
}
Помню, что я столкнулся с подобной проблемой при отправке файлов .apk в тестеры. Если пользователь загрузил файл .apk более одного раза, имя будет изменено с 'foo_bar.apk' на' foo_bar.apk (1) ', что заставило бы android не распознавать его как действительный apk для установки. :/ –
Зачем даже беспокоиться о nopm, просто удалите часть ':' s «sanitizing» – Blundell
Невозможно сделать это @Blundell, чтобы переименовать файл, он должен существовать согласно File.exists, который , возвращает false в случае файла, содержащего двоеточие в нем –