1.NSFileManager

1.NSFileManager介紹

  • 什么是NSFileManager
    顧名思義, NSFileManager是用來(lái)管理文件系統(tǒng)的
    它可以用來(lái)進(jìn)行常見(jiàn)的文件\文件夾操作
    NSFileManager使用了單例模式

  • 使用defaultManager方法可以獲得那個(gè)單例對(duì)象

[NSFileManager defaultManager]

2.NSFileManager用法

  • path這個(gè)文件\文件夾是否存在
- (BOOL)fileExistsAtPath:(NSString *)path;

NSFileManager *manager = [NSFileManager defaultManager];
    // 可以判斷文件
    BOOL flag = [manager fileExistsAtPath:@"/Users/sss/Desktop/sss.txt"];
    NSLog(@"flag = %i", flag);
    // 可以判斷文件夾
    flag = [manager fileExistsAtPath:@"/Users/sss/Desktop/sss"];
    NSLog(@"flag = %i", flag);
  • path這個(gè)文件\文件夾是否存在, isDirectory代表是否為文件夾
- (BOOL)fileExistsAtPath:(NSString )path isDirectory:(BOOL )isDirectory;

    NSFileManager *manager = [NSFileManager defaultManager];
    BOOL directory = NO;
    BOOL flag = [manager fileExistsAtPath:@"/Users/LNJ/Desktop/未命名文件夾" isDirectory:&directory];
    NSLog(@"flag = %i, directory = %i", flag, directory);
  • path這個(gè)文件\文件夾是否可讀
- (BOOL)isReadableFileAtPath:(NSString *)path;
  • path這個(gè)文件\文件夾是否可寫(xiě)
    系統(tǒng)目錄不允許寫(xiě)入
- (BOOL)isWritableFileAtPath:(NSString *)path;
  • path這個(gè)文件\文件夾是否可刪除
    系統(tǒng)目錄不允許刪除
- (BOOL)isDeletableFileAtPath:(NSString *)path;

3.NSFileManager的文件訪問(wèn)

  • 獲得path這個(gè)文件\文件夾的屬性
- (NSDictionary )attributesOfItemAtPath:(NSString )path error:(NSError **)error;

        NSDictionary *info = [manager attributesOfItemAtPath:@"/Users/sll/Downloads/Day18/NSFileManager基礎(chǔ)/main.m" error:nil];
        NSLog(@"info = %@", info);
  • 獲得path的當(dāng)前子路徑
- (NSArray )contentsOfDirectoryAtPath:(NSString )path error:(NSError **)error;
 獲取文件夾中所有的文件
        // 注意:contentsOfDirectoryAtPath方法有一個(gè)弊端, 只能獲取當(dāng)前文件夾下所有的文件, 不能獲取子文件夾下面的文件
NSFileManager *manager = [NSFileManager defaultManager];
    NSArray *paths = [manager contentsOfDirectoryAtPath:@"/Users/LNJ/Desktop/" error:nil];
    NSLog(@"paths = %@", paths);
  • 獲得文件內(nèi)容
- (NSData )contentsAtPath:(NSString )path;

  • 獲得path的所有子路徑
 - (NSArray )subpathsAtPath:(NSString )path;
- (NSArray )subpathsOfDirectoryAtPath:(NSString )path error:(NSError **)error;

    NSFileManager *manager = [NSFileManager defaultManager];
    NSArray *paths = [manager subpathsAtPath:@"/Users/LNJ/Desktop/"];
    NSLog(@"paths = %@", paths);


4.NSFileManager的文件操作

  • 拷貝
- (BOOL)copyItemAtPath:(NSString )srcPath toPath:(NSString )dstPath error:(NSError **)error;
  • 移動(dòng)(剪切)
- (BOOL)moveItemAtPath:(NSString )srcPath toPath:(NSString )dstPath error:(NSError **)error;
  • 刪除
- (BOOL)removeItemAtPath:(NSString )path error:(NSError *)error;
  • 創(chuàng)建文件夾(createIntermediates為YES代表自動(dòng)創(chuàng)建中間的文件夾)
- (BOOL)createDirectoryAtPath:(NSString )path withIntermediateDirectories:(BOOL)createIntermediates attributes:(NSDictionary )attributes error:(NSError **)error;

    NSFileManager *manager = [NSFileManager defaultManager];
    BOOL flag = [manager createDirectoryAtPath:@"/Users/LNJ/Desktop/test" withIntermediateDirectories:YES attributes:nil error:nil];
    NSLog(@"flag = %i", flag);
  • 創(chuàng)建文件(NSData是用來(lái)存儲(chǔ)二進(jìn)制字節(jié)數(shù)據(jù)的)
- (BOOL)createFileAtPath:(NSString )path contents:(NSData )data attributes:(NSDictionary *)attr;

 NSString *str = @"lnj";
    NSData  *data = [str dataUsingEncoding:NSUTF8StringEncoding];
    NSFileManager *manager = [NSFileManager defaultManager];
    BOOL flag = [manager createFileAtPath:@"/Users/LNJ/Desktop/abc.txt" contents:data attributes:nil];
    NSLog(@"flag = %i", flag);
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容