1. 程式人生 > >IOS工具類--本地沙盒檔案基本操作

IOS工具類--本地沙盒檔案基本操作

本類提供在本地檔案的讀寫、判斷等操作:

/*
 一: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