IOS工具類--本地沙盒檔案基本操作
阿新 • • 發佈:2019-02-03
本類提供在本地檔案的讀寫、判斷等操作:
/*
一:a.Documents資料夾,主要用來儲存一些重要的資訊,比如使用者資料,程式的配置檔案,聊天記錄等等
.Documents中儲存的資訊會隨著iTunes同步到電腦備份或者是iCould開發會同步到雲端.該資料夾下不可存太大的內容,比如視訊等.上傳時會被拒掉.
b.Caches主要儲存一些快取檔案,比如視訊快取,音訊快取或者圖片快取等.
c.tmp主要用於儲存一些臨時檔案,比如做斷點續傳時的臨時檔案.
這三個資料夾儲存的內容都需要手動刪除,極限情況下,磁碟空間不足的時候作業系統會清除tmp資料夾的內容.
*/
#import <Foundation/Foundation.h>
@interface FileUtils : NSObject
/**
獲取沙盒主目錄
@return 返回目錄
*/
+(NSString*) getSandBoxHomeDir;
/**
獲取臨時目錄
@return 臨時目錄
*/
+(NSString*) getTmpDir;
/**
獲取Document目錄
@return 返回目錄
*/
+(NSString*) getDocumentDir;
/**
獲取快取檔案目錄
@return 返回快取檔案目錄
*/
+(NSString*) getCacheDir;
/**
判斷指定檔案是否存在
@param fileName 檔名
@return 檢測結果
*/
+(BOOL) isExistFile:(NSString*) fileName;
/**
刪除指定檔案
@param fileName 檔名
@return 返回刪除結果
*/
+(BOOL) deleteFile:(NSString*) fileName;
/**
將字串寫入沙盒
@param content 待寫入的內容
@param fileName 檔名
@return 返回寫入結果
*/
+(BOOL) writeString2File:(NSString*) content fileName:(NSString*) fileName;
+(NSString*) readFile:(NSString*) fileName;
@end
原始檔:
#import "FileUtils.h"
@implementation FileUtils
+(NSString*) getSandBoxHomeDir{
NSString *homePath = NSHomeDirectory();
return homePath;
}
+(NSString *)getDocumentDir{
NSString * documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
return documentsPath;
}
+(NSString *)getTmpDir{
NSString * tmpPath = NSTemporaryDirectory();
return tmpPath;
}
+(NSString*) getCacheDir{
//NSString *homePath = NSHomeDirectory();
//方法1
NSString * cachesPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject];
//方法2
//NSString * cachesPath1 = [homePath stringByAppendingString:@"/Library/Caches"];
//方法3 此api會自動補一個/
//NSString * cachesPath3 = [homePath stringByAppendingPathComponent:@"Library/Caches"];
return cachesPath;
}
+(BOOL) isExistFile:(NSString*) fileName{
NSString * documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
NSFileManager * fileManager = [NSFileManager defaultManager];
NSString * filePath = [documentsPath stringByAppendingPathComponent:fileName];
return [fileManager fileExistsAtPath:filePath];
}
+(BOOL) deleteFile:(NSString*) fileName{
NSString * documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
NSFileManager * fileManager = [NSFileManager defaultManager];
NSString * filePath = [documentsPath stringByAppendingPathComponent:fileName];
return [fileManager removeItemAtPath:filePath error:nil];
}
+(BOOL) writeString2File:(NSString*) content fileName:(NSString*) fileName{
NSString *documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
NSString *filePath = [documentsPath stringByAppendingPathComponent:fileName];
NSLog(@"64------write file path is :%@",filePath);
NSError *error = nil;
BOOL result = [content writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:&error];
if (error) {
NSLog(@"error:%@",error);
}
return result;
//陣列寫入磁碟
// NSArray * array = @[@"我是",@"好看的",@"陣列"];
// [array writeToFile:[self filePath] atomically:YES];
}
+(NSString*) readFile:(NSString*) fileName{
NSString *documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
NSString *filePath = [documentsPath stringByAppendingPathComponent:fileName];
NSLog(@"82------read file path is :%@",filePath);
//從磁碟讀出字串
NSString * string = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];
//讀出陣列
//NSArray * array = [NSArray arrayWithContentsOfFile:[self filePath]];
return string;
}
@end