Как получить дубликаты медиафайлов в библиотеке фотографий? - PullRequest
0 голосов
/ 16 мая 2018

Я хочу найти дубликаты фотографий / видео в библиотеке фотографий и удалить их. Но я запутался, как я могу сравнить все фотографии друг с другом и найти, какие из них дублированы.

Сравнение байтов не полезно, какой путь мне выбрать?

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

Используя платформу Photos, вы можете получить список всех носителей, используя следующую команду:

PHPhotoLibrary.requestAuthorization { status in
    if status == .authorized {
        let fetchOptions = PHFetchOptions()
        fetchOptions.sortDescriptors = [NSSortDescriptor(key:"creationDate", ascending:true)]
        assets = PHAsset.fetchAssets(with: fetchOptions)
    }
}

Приведенный выше код упорядочивает активы по дате создания.Это означает, что при проверке списка из 5000 нечетных активов вам нужно только проверить соседние активы в списке, чтобы увидеть, являются ли они дубликатами.

0 голосов
/ 16 мая 2018

Вы можете использовать строку кода ниже, чтобы получить свойства мультимедиа, и вы можете сравнить метаданные с другими медиафайлами. Таким образом, вы можете проверить наличие дубликатов.

let metadata = info[UIImagePickerControllerMediaMetadata] as? NSDictionary    
...