我需要在应用程序创建的目录中保存一些图像,这是创建目录和设置完全权限的代码
NSFileManager* manager = [NSFileManager defaultManager];
SnapDir = [AssetPath stringByAppendingPathComponent:@"ScreenCaptures"];
if (![manager fileExistsAtPath:AssetWatchSnapDir isDirectory:&isDirectory] || !isDirectory)
{
NSError *error = nil;
[manager createDirectoryAtPath:SnapDir
withIntermediateDirectories:NO
attributes:nil
error:&error];
if (error)
NSLog(@"Error creating directory snap path: %@", [error localizedDescription]);
else {
NSError *error1;
[manager setAttributes:@{ NSFilePosixPermissions : @0777 }
ofItemAtPath:SnapDir error:&error1];
}
}
[[NSUserDefaults standardUserDefaults] setObject:SnapDir forKey:@"AssetSnap"];
现在我保存了像png一样的图像,
SnapDir = [[NSUserDefaults standardUserDefaults] objectForKey:@"AssetSnap"];
NSString* filepath = [SnapDir stringByAppendingPathComponent:filename];
NSError *error;
bool success = [pngRep writeToFile:filepath options:0 error:&error];
if (!success) {
NSLog(@"writeToFile failed with error %@", error);
}
如果图像保存发生在创建目录的app运行的同一个实例中,则此方法可以正常工作。那就是我打开应用程序,由应用程序创建目录然后保存。
当关闭应用程序并再次打开并尝试保存图像(使用NSUserDefaults
中存储的目标路径)时,会出现以下关于权限问题的错误。
Error Domain=NSCocoaErrorDomain Code=513 "You don’t have permission to save the file “2016_08_19_06_32_00.png” in the folder “ScreenCaptures”." UserInfo={NSFilePath=/Users/development/Documents/d/ScreenCaptures/
答案 0 :(得分:1)
尝试:
String target = ".";
String someString = "123.456";
String[] someStringSplit = someString.split(target); // someStringSplit is an empty array
或
[manager createDirectoryAtPath:SnapDir.path
withIntermediateDirectories:NO
attributes:nil
error:&error];
我没有测试此代码