Ios 如何在使用PhaseSetChangeRequest.FromVideo时避免重复视频文件

Ios 如何在使用PhaseSetChangeRequest.FromVideo时避免重复视频文件,ios,xamarin,photokit,Ios,Xamarin,Photokit,我正在编写一个应用程序,通过HTTP从远程服务器(drone)导入视频文件。将文件下载到本地存储器(/Documents/video)后,我使用PHAssetChangeRequest.FromVideo将其导入PHPhotLibrary中的自定义相册 我可以导入视频,在模拟器中访问照片应用程序时,视频会显示在正确的相册中。但是,如果我将其从相册中删除,则该文件不会从我的apps/Documents/video文件夹中删除 然后,在使用PHAssetChangeRequest.FromVideo

我正在编写一个应用程序,通过HTTP从远程服务器(drone)导入视频文件。将文件下载到本地存储器(
/Documents/video
)后,我使用
PHAssetChangeRequest.FromVideo
将其导入
PHPhotLibrary
中的自定义相册

我可以导入视频,在模拟器中访问照片应用程序时,视频会显示在正确的相册中。但是,如果我将其从相册中删除,则该文件不会从我的apps
/Documents/video
文件夹中删除

然后,在使用
PHAssetChangeRequest.FromVideo
导入文件后,我尝试从
/Documents/video
中删除该文件,但随后视频从照片应用程序中消失


如何确保视频文件只有一个副本,最好存储在共享照片库中?我是否可以检测到文件被删除,以便从
/Documents/video
文件夹中删除它?还是每次应用启动时我都需要“同步”我自己

我认为您应该将下载的视频存储到一个临时目录中,如

NSString*outputPath=[NSTemporaryDirectory()stringByAppendingPathComponent:@“output.mov”]

然后你可以将它存储到照片应用程序中

将其存储到临时目录的好处是,操作系统将在需要时自动清除它,但是您可以通过创建以下类方法随时手动删除它

+ (void)clearTemporaryDirectoryData
{
    NSArray* tempDirectory = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:NSTemporaryDirectory() error:NULL];
    for (NSString *file in tempDirectory) {
        [[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@%@", NSTemporaryDirectory(), file] error:NULL];
    }
}
在您的情况下,您可以在将下载的视频保存到Photos应用程序后删除临时数据