Как в 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 шт):

Автор решения: Yura Ivanov

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, отсортировать, подобрать им новые имена, потом сохранять и видимо с некоторой задержкой...

→ Ссылка