Как проверить, что файл (видео) уже находится в ALAssetsLibrary (фотоальбом) перед сохранением? - PullRequest
1 голос
/ 20 марта 2012

Я сохраняю файл с сервера в ALAssetLibrary, чтобы пользователь мог просматривать его в автономном режиме

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

это мой код:

    ALAssetsLibrary* library = [[ALAssetsLibrary alloc] init];

        void (^completionBlock)(NSURL *, NSError *) = ^(NSURL *assetURL, NSError *error)
        {
            if ( error != nil )
            {
                //writeFailed = YES;
                NSLog(@"error = %@", error);
            }

            //[self notifyCompletionTarget];
            NSLog(@" saving is done");
        };

        NSURL *url = [[NSURL alloc] initFileURLWithPath:path];

        [library writeVideoAtPathToSavedPhotosAlbum:url completionBlock:completionBlock ];
    }

1 Ответ

1 голос
/ 07 декабря 2012

Я думаю, что вы не можете . Вы можете использовать множество алгоритмов для сравнения файлов, таких как SHA-1, MD5, CRC и т. Д. . Однако в случае ALAsset упомянутое все потерпит неудачу.

Потому что, всякий раз, когда вы сохраняете файл в Photo-Library, используя ALAsset, он будет хранить местоположение, время и т. Д. .. информация о файле. Таким образом, один и тот же файл будет отличаться в соответствии с процессом сохранения.

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

...