Documents文件夹路径中的hex部分是什么?

我的应用程序的Documents文件夹中有一个文件。 当应用程序终止时,我将文件的URL保存在AppDelegate的applicationWillTerminate方法中:

 // archiver init code [archiver encodeObject:file.URL forKey:kFileURL]; // finish encoding and write data to file system 

但是当尝试在下一个应用程序启动时恢复文件时,文件管理器无法找到该文件:调用后

 NSURL *fileURL = [unarchiver decodeObjectForKey:kFileURL]; NSString *filePath = fileURL.path; 

方法

 [[NSFileManager defaultManager] fileExists:filePath]; 

返回NO

我试图找到原因,我发现每个应用程序启动时, Documents文件夹的路径都会发生变化。 更改的部分是中间的hex文件夹。 以下是两个例子:

 /private/var/mobile/Applications/04083A4A-87AC-4E3C-8BA1-F002B97AE304/Documents/... /private/var/mobile/Applications/65D136BA-42C3-887A-B947-7FE396978153/Documents/... 

我一直认为hex部分是每种应用程序独有的某种ID。 但随着它的变化:这个数字究竟是什么? 在终止并重新启动我的应用程序后,如何重新定位我的文件?

您应该只获取文档文件夹的目录,然后加载您的文件。

 + (NSString *)documentDataPath { NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); if ([paths count] == 0) { return nil; } NSString *directory = [paths objectAtIndex:0]; if (directory == nil) { NSLog(@"NSDocumentDirectory not found!"); } return directory; }