iOS NSFileManager文件属性读取与写入

二、文件属性的读取与修改

2.1文件属性读取
    NSString *strPath =[[NSBundle mainBundle] pathForResource:@"lomo.jpg" ofType:nil];  
    NSLog(@"path:%@", strPath);  
    NSFileManager *fileManager = [NSFileManager defaultManager];  
    NSString *path = strPath;//@"/tmp/List";  
    NSError *error = nil;  
    NSDictionary *fileAttributes = [fileManager attributesOfItemAtPath:path error:&error];  
      
    if (fileAttributes != nil) {  
        NSNumber *fileSize = [fileAttributes objectForKey:NSFileSize];  
        NSString *fileOwner = [fileAttributes objectForKey:NSFileOwnerAccountName];  
        NSDate *fileModDate = [fileAttributes objectForKey:NSFileModificationDate];  
        NSDate *fileCreateDate = [fileAttributes objectForKey:NSFileCreationDate];  
        if (fileSize) {  
            NSLog(@"File size: %qi\n", [fileSize unsignedLongLongValue]);  
        }  
        if (fileOwner) {  
            NSLog(@"Owner: %@\n", fileOwner);  
        }  
        if (fileModDate) {  
            NSLog(@"Modification date: %@\n", fileModDate);  
        }  
        if (fileCreateDate) {  
            NSLog(@"create date:%@\n", fileModDate);  
        }  
    }  
    else {  
        NSLog(@"Path (%@) is invalid.", path);  
    }
2.2文件属性修改

我们从2.1可知,文件属性具有类似,而不是简单只有的NSString或者NSInteger类型,因此,我们的写入类型和读取类型一致便可以写入。

- (BOOL)setAttributes:(NSDictionary<NSString *, id> *)attributes ofItemAtPath:(NSString *)path error:(NSError * _Nullable *)error

 主要属性如下

NSFileBusy,

NSFileCreationDate,

NSFileExtensionHidden,

NSFileGroupOwnerAccountID,

NSFileGroupOwnerAccountName,

NSFileHFSCreatorCode,

NSFileHFSTypeCode,

NSFileImmutable,

 NSFileModificationDate,

NSFileOwnerAccountID,

NSFileOwnerAccountName

NSFilePosixPermissions.



NSError &error;
[NSFileManager defaultManager] setAttributes:@{NSFileModificationDate:[NSDate date],NSFileCreationDate:[NSDate date],NSFileOwnerAccountName:@""}  ofItemAtPath:filePath error:&error];

NSFileOwnerAccountName我们可以在设置成http中的eTag


必要性:修改文件modify时间可以让我们移动开发中更好的处理断点续传和http304缓存。


注意:

有些文件可以修改成功,有些则修改失败。

目前测试不足,具体可以确定,非执行文件的修改时间可以修改成功,类似html可执行文件则出现了失败情况。



你可能感兴趣的:(iOS NSFileManager文件属性读取与写入)