NSFileManager的方法createDirectoryAtPath在iOS上返回false结果

NSFileManager的方法createDirectoryAtPath在iOS上返回false结果,第1张

概述当我尝试使用下面的代码创建一个文件夹时,当我尝试创建一个已存在的文件夹而不是返回YES时,它返回NO并显示错误: [[NSFileManager defaultManager] createDirectoryAtPath:[documentsPath stringByAppendingPathComponent:@"temp"] withIntermediateDirectories:NO att 当我尝试使用下面的代码创建一个文件夹时,当我尝试创建一个已存在的文件夹而不是返回YES时,它返回NO并显示错误:

[[NSfileManager defaultManager] createDirectoryAtPath:[documentsPath stringByAppendingPathComponent:@"temp"] withIntermediateDirectorIEs:NO attributes:nil error:&error];

Apple的documentation说:

Return ValueYES if the directory was created or already exists or NO if an error occurred.

所以我应该在成功或者文件夹存在时得到YES.但是当文件夹存在时我收到此消息:

Error Domain=NSCocoaErrorDomain Code=516 "The operation Couldn’t be completed. (Cocoa error 516.)" UserInfo=0x200ef5f0 {NSfilePath=/var/mobile/Applications/DA657A0E-785D-49B4-9258-DF9EBAC5D52A/documents/temp,NSUnderlyingError=0x200ef590 "The operation Couldn’t be completed. file exists"}

这是一个错误,应该报告给Apple还是我做错了什么?

解决方法 如果文件存在且不是目录,[NSfileManager createDirectoryAtPath:withIntermediateDirectorIEs:attributes:error:]将失败.

所以前进的方法是不打扰创建目录(如果它已经存在)并抛出异常(如果它存在且不是目录):

Nsstring *filename = [documentsPath stringByAppendingPathComponent:@"temp"];NSfileManager *fileman = [NSfileManager defaultManager];BOol isDir = NO;if (![fileman fileExistsAtPath:filename isDirectory:&isDir]){    // Create the directory}else if (!isDir){    NSLog(@"Cannot proceed!");    // Throw exception}
总结

以上是内存溢出为你收集整理的NSFileManager的方法createDirectoryAtPath在iOS上返回false结果全部内容,希望文章能够帮你解决NSFileManager的方法createDirectoryAtPath在iOS上返回false结果所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1039731.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存