我正在保存我正在处理的应用程序中录制的视频和音频文件。以下是网址部分的示例:
@"文件:/// VAR /移动/容器/数据/应用/的 1AADB360-ABA7-493E-AE35-290803AA2EBD /Documents/444571753026.caf"
如果我从testflight重建或安装新版本,则应用程序找不到该文件,如果我保存另一个文件,则URL的粗体部分已更改。我该如何处理?请记住,我已经在appstore上有这个应用程序的版本,如果我可以在没有用户丢失数据的情况下更新应用程序,那将是首选。
答案 0 :(得分:1)
该标识符可以更改,并且无法保证它始终保持不变。 iOS SDK提供相关的API,因此您不必依赖它,并始终获取文档文件夹的正确路径。您可以使用:
NSURL *directoryURL = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
这将为您提供应用文档目录的URL。有关目录内的进一步探索:
NSFileManager *fm = [NSFileManager defaultManager];
NSDirectoryEnumerator *enumerator = [fm enumeratorAtURL:directoryURL includingPropertiesForKeys:@[ NSURLNameKey, NSURLIsDirectoryKey ] options:NSDirectoryEnumerationSkipsSubdirectoryDescendants|NSDirectoryEnumerationSkipsHiddenFiles errorHandler:NULL];
如果您知道文件或文件夹的名称,可以使用:
NSURL *fileURL = [directoryURL URLByAppendingPathComponent:directoryName isDirectory:NO];
您可以根据需要配置枚举器,以便根据需要执行。这只是我在其中一个应用中使用的示例。
如果您需要访问NSDocumentDirectory
,可以将NSCachesDirectory
替换为NSLibraryDirectory
或{{1}}。