目录获取
获取沙盒的主目录路径:
+ (NSString *)homeDir {
return NSHomeDirectory();
}
复制代码
获取沙盒中Documents的目录路径:
+ (NSString *)documentsDir {
return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
}
复制代码
获取沙盒中Library的目录路径:
+ (NSString *)libraryDir {
return [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) lastObject];
}
复制代码
获取沙盒中Libarary/Preferences的目录路径:
+ (NSString *)preferencesDir {
NSString *libraryDir = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) lastObject];
return [libraryDir stringByAppendingPathComponent:@"Preferences"];
}
复制代码
获取沙盒中Library/Caches的目录路径:
+ (NSString *)cachesDir {
return [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject];
}
复制代码
获取沙盒中tmp的目录路径:
+ (NSString *)tmpDir {
return NSTemporaryDirectory();
}
复制代码
2、创建文件(夹)
创建文件夹:
+ (BOOL)createDirectoryAtPath:(NSString *)path error:(NSError *__autoreleasing *)error {
NSFileManager *manager = [NSFileManager defaultManager];
/* createDirectoryAtPath:withIntermediateDirectories:attributes:error:
* 参数1:创建的文件夹的路径
* 参数2:是否创建媒介的布尔值,一般为YES
* 参数3: 属性,没有就置为nil
* 参数4: 错误信息
*/
BOOL isSuccess = [manager createDirectoryAtPath:path withIntermediateDirectories:YES attributes:nil error:error];
return isSuccess;
}
复制代码
创建文件:
/*创建文件
*参数1:文件创建的路径
*参数2:写入文件的内容
*参数3:假如已经存在此文件是否覆盖
*参数4:错误信息
*/
+ (BOOL)createFileAtPath:(NSString *)path overwrite:(BOOL)overwrite error:(NSError *__autoreleasing *)error {
// 如果文件夹路径不存在,那么先创建文件夹
NSString *directoryPath = [self directoryAtPath:path];
if (![self isExistsAtPath:directoryPath]) {
// 创建文件夹
if (![self createDirectoryAtPath:directoryPath error:error]) {
return NO;
}
}
// 如果文件存在,并不想覆盖,那么直接返回YES。
if (!overwrite) {
if ([self isExistsAtPath:path]) {
return YES;
}
}
/*创建文件
*参数1:创建文件的路径
*参数2:创建文件的内容(NSData类型)
*参数3:文件相关属性
*/
BOOL isSuccess = [[NSFileManager defaultManager] createFileAtPath:path contents:nil attributes:nil];
return isSuccess;
}
复制代码
获取文件创建的时间或者修改的时间:
//获取文件创建的时间
+ (NSDate *)creationDateOfItemAtPath:(NSString *)path error:(NSError *__autoreleasing *)error {
return (NSDate *)[self attributeOfItemAtPath:path forKey:NSFileCreationDate error:error];
}
//获取文件修改的时间
+ (NSDate *)modificationDateOfItemAtPath:(NSString *)path error:(NSError *__autoreleasing *)error {
return (NSDate *)[self attributeOfItemAtPath:path forKey:NSFileModificationDate error:error];
}
复制代码
3、写入文件内容
按照文件路径向文件写入内容,内容可为数组、字典、NSData等等:
/*参数1:文件路径
*参数2:文件内容
*参数3:错误信息
*/
+ (BOOL)writeFileAtPath:(NSString *)path content:(NSObject *)content error:(NSError *__autoreleasing *)error {
//判断文件内容是否为空
if (!content) {
[NSException raise:@