获取目录详细信息的API是什么?

时间:2012-05-13 07:28:06

标签: iphone objective-c ipad

我是Objective-c的新手,我想获取本地目录的详细信息(如名称,大小,上次修改时间)。有没有可以提供帮助的API?

3 个答案:

答案 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:方法。