我需要获取iOS中本地存储的几个文件的大小和最后修改日期(特别是临时目录)。该文件由NSURL
引用:
let fileURL: NSURL = ...
我找到了两种方法:
NSFileManager.defaultManager().attributesOfItemAtPath(fileURL.path!)[NSFileSize]
和
var size: AnyObject?
fileURL.getResourceValue(&size, forKey: "NSURLFileSizeKey")
两者之间的区别是什么?比另一个更有效率吗?
答案 0 :(得分:1)
一个采用路径,一个采用文件URL。根据您的使用方式,最好使用路径或URL。
有各种NSFileManager
方法可以枚举文件URL并预加载特定的文件属性。如果您使用其中一个API,那么使用getResourceValue
上的NSURL
将更有效,因为数据已经到位。
NSURL getResourceValue
可能效率更高一点,因为NSFileManager attributesOfItemAtPath
可能(可能?)预加载其所有文件属性,这比获取单个属性效率低。但这是一个实施细节。
最后,这是不成熟的优化。使用哪一个更容易编写和维护。除非您遇到需要处理的性能问题,否则不要担心性能。