Disclaimer: This answer was valid until ios 4.3.3
If data protection is turned on, a newly created file will have a nil
NSFileProtectionKey
by default.
If data protection is turned off, a newly created file will have a NSFileProtectionNone
NSFileProtectionKey
by default.
Thus, you could detect the presence of file protection with the following code:
NSString *tmpDirectoryPath =
[NSHomeDirectory() stringByAppendingPathComponent:@"tmp"];
NSString *testFilePath =
[tmpDirectoryPath stringByAppendingPathComponent:@"testFile"];
[@"" writeToFile:testFilePath
atomically:YES
encoding:NSUTF8StringEncoding
error:NULL]; // obviously, do better error handling
NSDictionary *testFileAttributes =
[[NSFileManager defaultManager] attributesOfItemAtPath:testFile1Path
error:NULL];
BOOL fileProtectionEnabled =
[NSFileProtectionNone isEqualToString:[testFile1Attributes objectForKey:NSFileProtectionKey]];