- (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,返