我是Objective-c的新手,我想获取本地目录的详细信息(如名称,大小,上次修改时间)。有没有可以提供帮助的API?
答案 0 :(得分:5)
希望你能在这里找到答案:
可以使用。获取文件或目录的属性 attributesOfItemAtPath 方法。这作为参数的路径 目录和一个可选的NSError对象,其中的信息 将放置任何错误(如果这样,可以指定为NULL) 信息不是必需的)。结果以表格形式返回 一个NSDictionary字典对象(有关使用的详细信息) 字典对象是指Objective-C Dictionary Objects)。
这本词典的一些关键词:
NSFileType
NSFileTypeDirectory
NSFileTypeBlockSpecial
NSFileTypeUnknown
NSFileSize
NSFileModificationDate
NSFileOwnerAccountName
NSFileGroupOwnerAccountName
NSFilePosixPermissions
NSFileSystemNumber
NSFileCreationDate
NSFileOwnerAccountID
NSFileGroupOwnerAccountID
以上文章中的示例:
(我们可以使用以下代码摘录提取/ tmp目录的创建日期,文件类型和POSIX权限)
NSFileManager *filemgr;
NSDictionary *attribs;
filemgr = [NSFileManager defaultManager];
attribs = [filemgr attributesOfItemAtPath: @"/tmp" error: NULL];
NSLog (@"Created on %@", [attribs objectForKey: NSFileCreationDate]);
NSLog (@"File type %@", [attribs objectForKey: NSFileType]);
NSLog (@"POSIX Permissions %@", [attribs objectForKey: NSFilePosixPermissions]);
答案 1 :(得分:2)
前沿(2012年3月13日)正在使用CFURL / NSURL属性:
id outName = nil;
NSString * key = NSURLNameKey;
NSError * outError = nil;
if (YES == [url getResourceValue:&value forKey:key error:&outError]) {
NSString * name = outName;
...
}
注意:确保只请求您需要的内容,并注意有批量请求方法/功能可以最大限度地减少冗余请求。如果使用NSURL,您可以使用:
NSArray * keys = ...;
NSError * outError = nil;
NSDictionary * properties = [url resourceValuesForKeys:keys error:&outError];
答案 2 :(得分:0)
您应该查看NSFileManager API。特别是-attributesOfItemAtPath:error:
方法。