文件管理iOS類FileManager
FileManager.h文件:import <Foundation/Foundation.h>
@interface FileManager : NSObject
+(BOOL)fileExistsAtPath:(NSString *)path;
+(NSString *)getDocumentsPath;
+(BOOL)createDirectoryWithPath:(NSString *)path;
+(BOOL)removeFileAtPath:(NSString *)filePath;
+(BOOL)renameFileName:(NSString )oldName toNewName:(NSString )newName;
+(NSData )readFileContent:(NSString )filePath;
+(BOOL)saveToDirectory:(NSString )path data:(NSData )data name:(NSString *)newName;
+(float)getFileSize:(NSString *)filePath;
@end
FileManager.m文件:
import "FileManager.h"
@class NSFileManager;
define DocumentsPath [self getDocumentsPath]
@implementation FileManager
//判斷目錄是否存在
+(BOOL)fileExistsAtPath:(NSString *)path
{
return [[NSFileManager defaultManager] fileExistsAtPath:path];
}
//獲取Documents路徑
+(NSString *)getDocumentsPath
{
NSArray * paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString * documentsDirectory = [paths objectAtIndex:0]; return documentsDirectory;
}
//在Documents目錄下創建新目錄或文件
+(BOOL)createDirectoryWithPath:(NSString *)path
{
BOOL result = NO; NSFileManager * fileManager = [NSFileManager defaultManager]; NSString * myDirectory = [DocumentsPath stringByAppendingPathComponent:path]; if ([fileManager fileExistsAtPath:myDirectory] == NO) { NSError * error = nil; result=[fileManager createDirectoryAtPath:myDirectory withIntermediateDirectories:NO attributes:nil error:&error]; if (error) { NSLog(@"創建目錄失敗:%@",[error localizedDescription]); } } return result;
}
//刪除目錄或文件
+(BOOL)removeFileAtPath:(NSString *)filePath
{
BOOL result = NO; NSError * error = nil; NSString * fullPath = [DocumentsPath stringByAppendingPathComponent:filePath]; result = [[NSFileManager defaultManager] removeItemAtPath:fullPath error:&error]; if (error) { NSLog(@"刪除失敗:%@",[error localizedDescription]); } return result;
}
//重命名目錄或文件
+(BOOL)renameFileName:(NSString )oldName toNewName:(NSString )newName
{
BOOL result = NO; NSError * error = nil; result = [[NSFileManager defaultManager] moveItemAtPath:[DocumentsPath stringByAppendingPathComponent:oldName] toPath:[DocumentsPath stringByAppendingPathComponent:newName] error:&error]; if (error) { NSLog(@"重命名失敗:%@",[error localizedDescription]); } return result;
}
//讀取某個文件
+(NSData )readFileContent:(NSString )filePath
{
return [[NSFileManager defaultManager] contentsAtPath:[DocumentsPath stringByAppendingPathComponent:filePath]];
}
//保存某個文件
+(BOOL)saveToDirectory:(NSString )path data:(NSData )data name:(NSString *)newName
{
return [[NSFileManager defaultManager] createFileAtPath:[DocumentsPath stringByAppendingPathComponent:[path stringByAppendingPathComponent:newName]] contents:data attributes:nil];
}
//計算文件大小
+(float)getFileSize:(NSString *)filePath
{
NSError * error = nil; NSDictionary * attributes = [NSDictionary dictionaryWithDictionary:[[NSFileManager defaultManager] attributesOfItemAtPath:[DocumentsPath stringByAppendingPathComponent:filePath] error:&error]]; if (attributes != nil) { return [[attributes objectForKey:NSFileSize] floatValue]; } if (error) { NSLog(@"計算文件大小失敗:%@",[error localizedDescription]); } return 0;
}
@end
</pre>