一、函数的使用注意
调用 - (BOOL)fileExistsAtPath:(NSString *)path isDirectory:(BOOL *)isDirectory;
作用:1.判断一个文件是否存在 2.判断一个文件是否是目录
以下是几种情况下的运行结果:
1.path路径是一个目录并且存在:
函数返回值:YES isDirectory:无论其初始值是多少,始终返回YES
2.path路径是一个目录并且不存在:
函数返回值:NO isDirectory:返回值和其初始值保持一致
3.path路径是一个文件(.txt),且不存在
函数返回值:NO isDirectory:返回值和初始值保持一致
4.path路径是一个文件(.txt),且存在
函数返回值:YES isDirectory:无论其初始值,始终返回NO
以下是测试代码:
//
// SandboxTool.m
//
//
// Created by zhangqi on 17/3/2016.
//
//
#import "SandboxTool.h"
@implementation SandboxTool
/**
* Get documents (Documents) directory
*
* @return 真机: /var/mobile/Containers/Data/Application/9FBAB5BE-B1D7-4705-8A23-9ABC78ABAE19/Documents
*/
+ (NSString *)getDocumentDir
{
return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
}
/**
* Get library directory
*
* @return 真机:/var/mobile/Containers/Data/Application/8515DEFD-26D2-455A-A399-9A859EE8A92A/Library
*/
+ (NSString *)getLibrary
{
return [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) lastObject];
}
/**
* Get library/cache
*
* @return /var/mobile/Containers/Data/Application/F738FC55-A4C9-4858-B2BC-BEB0824FF5C0/Library/Caches
*/
+ (NSString *)getLibraryCache
{
return [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
}
@end
- (void)createDir
{
NSString *filePath = [[SandboxTool getDocumentDir] stringByAppendingPathComponent:@"qi.txt"];
// NSString *filePath = [SandboxTool getDocumentDir];
NSFileManager *fileManager = [NSFileManager defaultManager];
BOOL isdir = YES;
if ([fileManager fileExistsAtPath:filePath isDirectory:&isdir]) {
NSLog(@"函数返回值为YES");
if (isdir) {
NSLog(@"isDirectory返回YES");
}else{
NSLog(@"isDirectory返回NO");
}
}else{
NSLog(@"函数返回值为NO");
if([fileManager createFileAtPath:filePath contents:[@"nihao" dataUsingEncoding:NSUTF8StringEncoding] attributes:nil]){
NSLog(@"文件创建成功");
}else{
NSLog(@"文件创建失败");
}
if (isdir) {
NSLog(@"isDirectory返回YES");
}else{
NSLog(@"isDirectory返回NO");
}
}
}