NSFileManager.attributesOfItemAtPath与USURL.getResourceValue的文件大小和修改日期

时间:2016-08-24 16:04:29

标签: ios nsurl nsfilemanager

我需要获取iOS中本地存储的几个文件的大小和最后修改日期(特别是临时目录)。该文件由NSURL引用:

let fileURL: NSURL = ...

我找到了两种方法:

NSFileManager.defaultManager().attributesOfItemAtPath(fileURL.path!)[NSFileSize]

var size: AnyObject?
fileURL.getResourceValue(&size, forKey: "NSURLFileSizeKey")

两者之间的区别是什么?比另一个更有效率吗?

1 个答案:

答案 0 :(得分:1)

一个采用路径,一个采用文件URL。根据您的使用方式,最好使用路径或URL。

有各种NSFileManager方法可以枚举文件URL并预加载特定的文件属性。如果您使用其中一个API,那么使用getResourceValue上的NSURL将更有效,因为数据已经到位。

NSURL getResourceValue可能效率更高一点,因为NSFileManager attributesOfItemAtPath可能(可能?)预加载其所有文件属性,这比获取单个属性效率低。但这是一个实施细节。

最后,这是不成熟的优化。使用哪一个更容易编写和维护。除非您遇到需要处理的性能问题,否则不要担心性能。

相关问题