Как в Android ОС поменять дату создания .mp4 файлов?
На андроид-эмуляторе Bluestacks 4 в папке лежит много видео-файлов (рандом кол-во) с такими именами: 1.mp4 , 2.mp4 , 3.mp4 ... 99999.mp4
Сначала нужно удалить в них все доступные для удаления (exif-метаданные) и далее изменить дату создания этих файлов, чтоб последний файл (99999.mp4) - стал с самой старой датой создания , а первый файл (1.mp4) - стал с первой датой создания.
Или нужна тулза\скрипт (по крайней мере в адроид прилке Total Commander в ручной переименовке это работает) : Переименовываем эти файлы по очереди, то есть начиная с последнего (999999a.mp4) , далее переименовываем предпоследний, и так далее ...заканчиваем переименование на первом файле (файл 1.mp4) Чтоб получились имена файлов так: 1a.mp4 2a.mp4 3a.mp4 ... 999999a.mp4
С помощью такого переименования в нужном порядке - даты создания файлов будут идти по очереди, 999999a.mp4 - будет самый старый , 1a.mp4 - будет самый новый. Но в этом случае exif- метаданные не знаю как удалить.
Подскажите как это реализовать?
Ответы (1 шт):
build.gradle
implementation 'androidx.exifinterface:exifinterface:1.3.3'
Меняем exif
InputStream in = openFileInput(FILE_NAME);
ExifInterface exif = new ExifInterface(in);
exif.setDateTime(new Date().getTime());// или для очистки exif.setAttribute(ExifInterface.TAG_DATETIME, null);
// для всех доступных
exif.setAttribute(ExifInterface.TAG_..., null);
exif.saveAttributes();
Получить все не null атрибуты нельзя. Если очень нужно, то через рефлексию exif.mAttributes содержит массив хэшмэпов, которые можно почистить и надеяться, что при сохранении все будет как нужно.
Дальше копирование/переименование файлов в зависимости от вашей логики. Лучше бы конечно сначала список файлов составить а то может оказаться, что 100.mp4 будет раньше 11.mp4, отсортировать, подобрать им новые имена, потом сохранять и видимо с некоторой задержкой...