如何在NSDocumentsDirectory中隐藏文件夹并禁止通过iTunes和iCloud进行备份

我在NSDocumentDirectory中创建私人文件夹,我想在iTunes中隐藏它并禁止备份。

在这个问题中如何隐藏在ios中的文档目录中创建的文件夹? 人们建议保存在私人目录中。

但根据苹果文档,这不是好事https://developer.apple.com/library/mac/documentation/FileManagement/Conceptual/FileSystemProgrammingGuide/FileSystemOverview/FileSystemOverview.html

Application_Home / Library /您不应将此目录用于用户数据文件。

在iTunes11之前,这个解决方案对我有用

我可以为iCloud的“文档目录”添加“不备份”

但现在我在iTunes中看到包含私人文档的文​​件夹。

有人能帮助我吗?

要从iTunes文件共享中隐藏您的应用程序,您可以在info.plist中将以下键设置为No

应用程序支持iTunes文件共享

或者,在您的文件名/目录前面添加一个带有的Documents目录. 隐藏它而不禁用iTunes文件共享。 例如.folderName

使用此选项来阻止iCloud备份,从防止备份到iCloud,是否遵循正确的代码?

 - (BOOL)addSkipBackupAttributeToItemAtPath:(NSString *)filePathString { NSURL *fileURL = [NSURL fileURLWithPath:filePathString]; assert([[NSFileManager defaultManager] fileExistsAtPath: [fileURL path]]); NSError *error = nil; BOOL success = [fileURL setResourceValue:[NSNumber numberWithBool: YES] forKey: NSURLIsExcludedFromBackupKey error: &error]; return success; } 

并且要在设备锁定时阻止来自XCode Organizer的应用备份,请使用此代码段

 //************************************************************************ // Method for making files and folders secure //************************************************************************ + (void)makeItemAtPathSecure:(NSString *)path { NSError *securingFilesError; NSFileManager *manager=[NSFileManager defaultManager]; NSDictionary *attrs = [manager attributesOfItemAtPath:path error:&securingFilesError]; if(![[attrs objectForKey:NSFileProtectionKey] isEqual:NSFileProtectionComplete]) { if(![manager setAttributes:[NSDictionary dictionaryWithObject:NSFileProtectionComplete forKey:NSFileProtectionKey] ofItemAtPath:path error:&securingFilesError]) { NSLog(@"Problem in securing files: %@",[securingFilesError localizedDescription]); } } else { NSLog(@"Problem in securing files: %@",[securingFilesError localizedDescription]); } } 

要有选择地隐藏iTunes中的文件夹,请尝试使用a重命名文件夹。 在它之前,像folderName应该是.folderName