美文网首页iOS开发之笔记摘录
NSFileManager文件管理---OC语法摘录

NSFileManager文件管理---OC语法摘录

作者: 平安喜乐698 | 来源:发表于2017-09-15 18:43 被阅读9167次

NSFileManager(创建、删除、复制、重命名)

    // 1.获取文件管理单例
    NSFileManager *sharedFileManger=[NSFileManager defaultManager];

    
    // 2.
    // 文件或目录是否存在  isDirectory:是否是目录
    BOOL isHave=[sharedFileManger fileExistsAtPath:@"path"];
    BOOL isDirectory;
    BOOL isH=[sharedFileManger fileExistsAtPath:@"ppath" isDirectory:&isDirectory];
    // 创建 目录(IntermediateDirectories:是否创建中间目录)(存在则不建)(att:文件夹的属性)
    [sharedFileManger createDirectoryAtPath:@"path" withIntermediateDirectories:true attributes:nil error:nil];
    // 创建 文件(存在则不建) (contents:文件的内容 att:文件的属性)
    [sharedFileManger createFileAtPath:@"path" contents:nil attributes:nil];
    // 删除 目录或文件
    [sharedFileManger removeItemAtPath:@"path" error:nil];
    // 移动 目录或文件
    [sharedFileManger moveItemAtPath:@"path" toPath:@"toPath" error:nil];
    // 复制 目录或文件
    [sharedFileManger copyItemAtPath:@"path" toPath:@"toPath" error:nil];
    
    
    // 获取 所有子目录文件名
    NSArray *subFileArr=[sharedFileManger subpathsAtPath:@"path"];
    // 获取 文件所有属性
    NSDictionary *fileDic=[sharedFileManger attributesOfItemAtPath:@"path" error:nil];
    // 获取 文件内容
    NSData *fileContentData=[sharedFileManger contentsAtPath:@"path"];
    // 文件内容是否相同
    BOOL isEqual=[sharedFileManger contentsEqualAtPath:@"path1" andPath:@"path2"];
    // 获取当前路径
    NSString *currentPath=[sharedFileManger currentDirectoryPath];
    // 改变当前路径
    [sharedFileManger changeCurrentDirectoryPath:@"path"];
    // 追加路径(自动在path2前+/,如果path2开头有/则删除/)
    [@"path" stringByAppendingPathComponent:@"path2"];


    // 写入文件(文件不存在则先创建再写入,如果存在中间路径则不建)(会覆盖)(有中文时使用NSASCIIStringEncoding会导致data为nil)
    [[@"ssbb" dataUsingEncoding:NSUnicodeStringEncoding]writeToFile:@"path" atomically:true];




    // 修改文件属性(属性不能填写不能修改的属性)
    [[NSFileManager defaultManager] setAttributes:@[] ofItemAtPath:@"path" error:nil];
    /*
    NSFileSize(不可更改,单位b)
    NSFileAppendOnly(创建的目录是否只读)
    NSFileCreationDate(可更改,目录的创建时间)
    NSFileOwnerAccountName(文件所有者的名字)
    NSFileGroupOwnerAccountName(文件用户组的名字)
    NSFileGroupOwnerAccountID(目录的组ID)
    NSFileModificationDate(可更改,目录的修改时间)
    NSFileOwnerAccountID(文件所有者的ID)
    NSFilePosixPermissions(文件的访问权限)
    NSFileReferenceCount(文件的引用计数)
    */




// 获取路径下所有文件的大小
- (unsigned long long)fileSizeForPath:(NSString *)path {
    
    signed long long fileSize = 0;
    
    NSFileManager *fileManager = [[NSFileManager alloc] init];
    
    if ([fileManager fileExistsAtPath:path]) {
        
        NSError *error = nil;
        
        NSDictionary *fileDict = [fileManager attributesOfItemAtPath:path error:&error];
        
        if (!error && fileDict) {
            
            fileSize = [fileDict fileSize];
        }
    }
    
    return fileSize;
}

相关文章

网友评论

    本文标题:NSFileManager文件管理---OC语法摘录

    本文链接:https://www.haomeiwen.com/subject/ejlesxtx.html