NSFileManager文件操作

// 獲取Documents路徑

- (NSString *)getDocumentPath{
    NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES) firstObject];
    return  path;
}

// 創(chuàng)建文件夾

- (void)createDirectory{
    NSString *documentPath = [self getDocumentPath];
    NSFileManager *filemanager = [NSFileManager defaultManager];
    NSString *iosDirectory = [documentPath stringByAppendingPathComponent:@"ios"];
    BOOL isSuccess = [filemanager createDirectoryAtPath:iosDirectory withIntermediateDirectories:YES attributes:nil error:nil];
    if (isSuccess) {
        NSLog(@"success");
    }else NSLog(@"fail");
    
}

// 創(chuàng)建文件

- (void)createFile{
    NSString *documentsPath = [self getDocumentPath];
    NSFileManager *filemanager = [NSFileManager defaultManager];
    NSString *iospath = [documentsPath stringByAppendingPathComponent:@"ios.txt"];
    BOOL isSuccess = [filemanager createFileAtPath:iospath contents:nil attributes:nil];
    if (isSuccess) {
        NSLog(@"success");
    }else NSLog(@"fail");

}

// 寫文件

- (void)writeFile{
    NSString *documentsPath = [self getDocumentPath];
    NSString *iosPath = [documentsPath stringByAppendingPathComponent:@"ios.txt"];
    NSString *content = @"我是一個數(shù)據(jù)拉";
    BOOL isSuccess = [content writeToFile:iosPath atomically:YES encoding:NSUTF8StringEncoding error:nil];
    if (isSuccess) {
        NSLog(@"success");
    }else{
        NSLog(@"fail");
    }
}

// 讀取文件內(nèi)容

- (void)readFileContent{
    NSString *documentsPath = [self getDocumentPath];
    NSString *iosPath = [documentsPath stringByAppendingPathComponent:@"ios.txt"];
    NSString *content = [NSString stringWithContentsOfFile:iosPath encoding:NSUTF8StringEncoding error:nil];
    NSLog(@"read success --%@",content);
    NSUInteger num = [self fileSizeAtPath:iosPath];
    NSLog(@"---%lud",(unsigned long)num);
}

// 判斷文件是否存在

- (BOOL)isSxistAtPath:(NSString *)filePath{
    NSFileManager *fileManager = [NSFileManager defaultManager];
    BOOL isExist = [fileManager fileExistsAtPath:filePath];
    return isExist;
}

// 計算文件大小

- (unsigned long long)fileSizeAtPath:(NSString *)filePath{
    NSFileManager *fileManager = [NSFileManager defaultManager];
    BOOL isExist = [fileManager fileExistsAtPath:filePath];
    if (isExist) {
        unsigned long long fileSize = [[fileManager attributesOfItemAtPath:filePath error:nil] fileSize];
        return  fileSize;
    }else{
        NSLog(@"file is not exist");
        return 0;
    }
}

// 計算整個文件夾中所有的文件大小

- (unsigned long long)folderSizeAtPath:(NSString *)folderPath{
    NSFileManager *filemanager = [NSFileManager defaultManager];
    BOOL isExsit = [filemanager fileExistsAtPath:folderPath];
    if (isExsit) {
        NSEnumerator *chileFileEnumerator = [[filemanager subpathsAtPath:folderPath] objectEnumerator];
        unsigned long long folderSize = 0;
        NSString *fileName = @"";
        while ((fileName = [chileFileEnumerator nextObject]) != nil) {
            NSString *fileAbsolutePath = [folderPath stringByAppendingPathComponent:fileName];
            folderSize += [self fileSizeAtPath:fileAbsolutePath];
        }
        return folderSize / (1024.0 * 1024.0);
    }else{
        NSLog(@"file is not exist");
        return 0;
    }
}

// 刪除文件

- (void)deleteFile{
    NSString *documentPath = [self getDocumentPath];
    NSFileManager *fileManager = [NSFileManager defaultManager];
    NSString *iosPath = [documentPath stringByAppendingPathComponent:@"ios.txt"];
    BOOL isSuccess = [fileManager removeItemAtPath:iosPath error:nil];
    if (isSuccess) {
        NSLog(@"delete success");
    }else{
        NSLog(@"delete fail");
    }
}

// 移動文件

- (void)moveFileName{
    NSString *documentsPath =[self getDocumentPath];
    NSFileManager *fileManager = [NSFileManager defaultManager];
    NSString *filePath = [documentsPath stringByAppendingPathComponent:@"ios.txt"];
    NSString *moveToPath = [documentsPath stringByAppendingPathComponent:@"ios1.txt"];
    BOOL isSuccess = [fileManager moveItemAtPath:filePath toPath:moveToPath error:nil];
    if (isSuccess) {
        NSLog(@"move success");
    }else{
        NSLog(@"move fail");
    }
}

// 重命名

- (void)renameFileName{
    /*
    文件重命名的兩個方法:
    方法一、思路:1.提取原有文件data截歉,
    2.將data存入新建的文件,
    3.刪除原有文件
    方法二、用[manager moveItemAtPath:filePath toPath:newPath error:nil];方法將filepath
    路徑下的文件名換成newPath
    對文件NSData賦值昭抒,在文件內(nèi)將內(nèi)容更改后攘蔽,move后的文件內(nèi)容保持跟最后修改的一致
    如果文件NSdata未賦值宋下,在程序外文件內(nèi)更改,move后新文件仍為空篡腌。
     */
    // 通過移動文件對文件重命名
    NSString *documentsPath = [self getDocumentPath];
    NSFileManager *fileManager = [NSFileManager defaultManager];
    NSString *filePath = [documentsPath stringByAppendingPathComponent:@"ios.txt"];
    NSString *moveToPath = [documentsPath stringByAppendingPathComponent:@"rename.txt"];
    BOOL isSuccess = [fileManager moveItemAtPath:filePath toPath:moveToPath error:nil];
    if (isSuccess) {
        NSLog(@"rename success");
    }else{
        NSLog(@"rename fail");
    }
}

// 文件復(fù)制

- (void)copyFileName{
    NSString *documentsPath = [self getDocumentPath];
    NSFileManager *fileManager = [NSFileManager defaultManager];
    NSString *filePath = [documentsPath stringByAppendingPathComponent:@"ios.txt"];
    NSString *moveToPath = [documentsPath stringByAppendingPathComponent:@"rename.txt"];
    if ([fileManager copyItemAtPath:filePath toPath:moveToPath error:nil]) {
        NSLog(@"success");
    }else{
        NSLog(@"fail");
    }
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市勾效,隨后出現(xiàn)的幾起案子嘹悼,更是在濱河造成了極大的恐慌,老刑警劉巖层宫,帶你破解...
    沈念sama閱讀 212,029評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件杨伙,死亡現(xiàn)場離奇詭異,居然都是意外死亡卒密,警方通過查閱死者的電腦和手機(jī)缀台,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,395評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來哮奇,“玉大人膛腐,你說我怎么就攤上這事睛约。” “怎么了哲身?”我有些...
    開封第一講書人閱讀 157,570評論 0 348
  • 文/不壞的土叔 我叫張陵辩涝,是天一觀的道長。 經(jīng)常有香客問我勘天,道長怔揩,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,535評論 1 284
  • 正文 為了忘掉前任脯丝,我火速辦了婚禮商膊,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘宠进。我一直安慰自己晕拆,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,650評論 6 386
  • 文/花漫 我一把揭開白布材蹬。 她就那樣靜靜地躺著实幕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪堤器。 梳的紋絲不亂的頭發(fā)上昆庇,一...
    開封第一講書人閱讀 49,850評論 1 290
  • 那天,我揣著相機(jī)與錄音闸溃,去河邊找鬼整吆。 笑死,一個胖子當(dāng)著我的面吹牛圈暗,可吹牛的內(nèi)容都是我干的掂为。 我是一名探鬼主播,決...
    沈念sama閱讀 39,006評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼勇哗,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了寸齐?” 一聲冷哼從身側(cè)響起欲诺,我...
    開封第一講書人閱讀 37,747評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎渺鹦,沒想到半個月后扰法,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,207評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡毅厚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,536評論 2 327
  • 正文 我和宋清朗相戀三年塞颁,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,683評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡祠锣,死狀恐怖酷窥,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情伴网,我是刑警寧澤蓬推,帶...
    沈念sama閱讀 34,342評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站澡腾,受9級特大地震影響沸伏,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜动分,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,964評論 3 315
  • 文/蒙蒙 一毅糟、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧刺啦,春花似錦留特、人聲如沸纠脾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,772評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽苟蹈。三九已至糊渊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間慧脱,已是汗流浹背渺绒。 一陣腳步聲響...
    開封第一講書人閱讀 32,004評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留菱鸥,地道東北人宗兼。 一個月前我還...
    沈念sama閱讀 46,401評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像氮采,于是被迫代替她去往敵國和親殷绍。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,566評論 2 349