ios6.1&ios7&ios9判断沙盒文件或者目录是否存在,以及判断是文件还是目录的一个隐藏问题

本文探讨了在iOS6.1、iOS7和iOS8中使用`fileExistsAtPath:isDirectory:`API判断文件或目录存在的问题。在iOS6.1上,当路径不存在时,API的`isDirectory`返回值可能不准确,可能导致无法正确判断文件类型。为了解决这个问题,建议在iOS6.1中先检查文件或目录是否存在,再判断其类型。对于需要判断路径类型的情况,应确保路径存在后再进行两次API调用来确定是文件还是目录。
摘要由CSDN通过智能技术生成
  • (BOOL)fileExistsAtPath:(NSString )path isDirectory:(BOOL )isDirectory

通常,iOS系统中判断文件或者目录是否存在,可以用上面这个API。

第二个参数 isDirectory是个传出参数, 用于返回,是文件还是目录。

一般两种情况会使用这个API

需求一、 判断文件或者目录是否存在

需求二. 判断path是文件还是目录

需求一、只要判断这个API的返回值,YES为存在,NO为不存在即可,isDirectory不需要判断

因为当传入参数 path不存在时, isDirectory返回的是 undefined, 如果不想要判断是否目录, 这个参数可传NULL。纵观网上的例子,判断文件或者目录是否存在时,同时也会判断这个参数的BOOL值。其实是错误的,因为还有第三个值undefined。

isDirectory
Upon return, contains YES if path is a directory or if the final path element is a symbolic link that points to a directory, otherwise contains NO. If path doesn’t exist, this value is undefined upon return. Pass NULL if you do not need this information.

尤其有意思的是,

当path看起来像是一个目录字符串时, iOS6和7和8,isDirectory返回的值不同。

iOS 6.1对这个的undefined,判断为NO,

而iOS7和8,返

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值