iOS中读取文件的时候能够读到很多属性,比如下面的方法读取文件属性
NSString *path = @"...";
//通过NSFileManager获取文件的属性
NSDictionary *attributes = [[NSFileManager defaultManager] attributesOfItemAtPath:path error:NULL];
NSLog(@"%@",attributes);
//通过NSURL获取文件属性
NSURL *fileUrl = [NSURL fileURLWithPath:path];
attributes = [fileUrl resourceValuesForKeys:[NSArray arrayWithObject:NSURLFileSizeKey] error:NULL];
NSLog(@"%@",attributes);
如果想给文件添加自定义的属性咋办嘞?比如项目中下载文件之后给文件添加自定的属性,下面来看看我用的方法
#include
//为文件增加一个扩展属性
+ (BOOL)extendedStringValueWithPath:(NSString *)path key:(NSString *)key value:(NSString *)stringValue{
NSData* value = [stringValue dataUsingEncoding:NSUTF8StringEncoding];
ssize_t writelen = setxattr([path fileSystemRepresentation],
[key UTF8String],
[value bytes],
[value length],
0,
0);
return writelen==0?YES:NO;
}
//读取文件扩展属性
+ (NSString *)stringValueWithPath:(NSString *)path key:(NSString *)key{
ssize_t readlen = 1024;
do {
char buffer[readlen];
bzero(buffer, sizeof(buffer));
size_t leng = sizeof(buffer);
readlen = getxattr([path fileSystemRepresentation],
[key UTF8String],
buffer,
leng,
0,
0);
if (readlen < 0){
return nil;
}
else if (readlen > sizeof(buffer)) {
continue;
}else{
NSData *data = [NSData dataWithBytes:buffer length:readlen];
NSString* result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"result---%@",result);
return result;
}
} while (YES);
return nil;
}