首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我在使用fileExistsAtPath:isDirectory时遇到问题

我在使用fileExistsAtPath:isDirectory时遇到问题
EN

Stack Overflow用户
提问于 2011-09-14 22:35:35
回答 1查看 1.4K关注 0票数 1

在我的应用程序中,用户可以选择一个带有弹出对话框的图像。第一次这样做时,一切都按预期运行,在添加镜像文件时,调用fileExistsAtPath:isDirectory,dir返回NO。但是,当用户第二次选择一个图像时,fileExistsAtPath:isDirectory总是返回YES (即使它不是一个目录)。

代码语言:javascript
复制
-(void) addImagesWithPath:(NSURL *)fileURL recursive:(BOOL) recursive{
  int i, n;
  BOOL dir;
  NSError *error;
  NSURL *newURL;

  [[NSFileManager defaultManager] fileExistsAtPath:[fileURL absoluteString] isDirectory:&dir];

编辑:如果我在方法调用前添加"dir = NO“,它似乎可以工作,但感觉像是一个hack。

EN

Stack Overflow用户

回答已采纳

发布于 2011-09-14 23:29:12

在检查第二个()参数的内容之前,您应该始终检查-[NSFileManager fileExistsAtPath:isDirectory:]的返回值。只有当方法返回YES时,输出参数才有意义。documentation中对此进行了描述

返回时,如果path是目录或者如果最终的path元素是指向目录的符号链接,则包含YES,否则包含NO。如果path不存在,则返回值未定义。如果不需要此信息,则传递NULL

如果该方法返回NO,则该路径不存在,或者您的应用程序无法访问它。如果它确实存在,请检查您的路径是否为完整路径(例如,它不应该以~开头)。

此外,在将路径传递到NSFileManager时,您应该使用-[NSURL path]而不是-[NSURL absoluteString]

票数 6
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7418121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档