如何在保存之前检查文件(视频)是不是已经在 ALAssetsLibrary(相册)中?

Posted

技术标签:

【中文标题】如何在保存之前检查文件(视频)是不是已经在 ALAssetsLibrary(相册)中?【英文标题】:how to check if a file ( video) is already in ALAssetsLibrary (photo album ) before saving it?如何在保存之前检查文件(视频)是否已经在 ALAssetsLibrary(相册)中? 【发布时间】:2012-03-20 09:58:06 【问题描述】:

我正在将文件从服务器保存到 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 ];
    

【问题讨论】:

您好,您尝试过以下方法吗? iphone.resourcezen.com/received-file-exists-in-photo-library如果您找到解决方案,请告诉我。 【参考方案1】:

我认为你不能。您可以使用许多算法来比较 SHA-1、MD5、CRC 等文件。但是在ALAsset 的情况下,所有提到的都会失败。

因为,每当您使用ALAsset 将文件保存到Photo-Library 时,它都会将位置、时间等.. 信息与文件一起存储。所以同一个文件对应的保存过程会有所不同。

以上所有算法都是针对文件竞争的。所以在ALAsset的情况下它们都会失败

【讨论】:

以上是关于如何在保存之前检查文件(视频)是不是已经在 ALAssetsLibrary(相册)中?的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式检查视频或音频文件格式是不是可以在 iPhone 中播放?

在我保存之前如何检查工作项是不是被修改

如何在保存在 Mongoose 之前检查数据库中是不是存在嵌入式文档

如何检查文件名是不是已经存在? [复制]

在Java Swing中保存文件时检查文件是不是存在

我可以在保存之前检查下载的图像是不是损坏吗?