14w*_*wml 4 nsfilemanager swift
我正在查看文档 contentsOfDirectory(at:includingPropertiesForKeys:options:)
特别是我一直专注于论点includingPropertiesForKeys,它说:
一组键,用于标识您希望为目录中的每个项目预取的文件属性。对于每个返回的 URL,指定的属性被提取并缓存在 NSURL 对象中。有关您可以指定的键列表,请参阅通用文件系统资源键。
单击URLResourceKey使我找到了有关它的 Apple 文档。
我想知道,如果我像钥匙过去了fileResourceTypeKey,fileResourceIdentifierKey和creationDateKey我怎么能访问那些在返回的URL列表(呼叫后contentsOfDirectory(at:includingPropertiesForKeys:options:))?
我也对URLResourceKeyenum b/ca感到困惑,许多类型与其他键具有相似的描述和名称,例如:
documentIdentifierKey对比fileResourceIdentifierKey对比localizedNameKey对比nameKeylocalizedTypeDescriptionKey对比fileResourceTypeKey对比typeIdentifierKeycontentsOfDirectory(at:includingPropertiesForKeys:options:)vs返回的网址pathKey就像这些键之间有什么区别?
基本上我此时对文件系统的了解非常低,所以请忍受我的“简单”问题。如果有人能解释所有这些密钥的含义以及我如何访问/使用它们,那就太好了!
首先,URLResourceKey文档很好地描述了属性信息的种类。例如,对于表示的 URLnameKey始终返回,而在德语系统或法语系统上返回本地化名称。然而和是完全不同的属性。Desktop~/DesktoplocalizedNameKeySchreibtischBureaudocumentIdentifierKeyfileResourceIdentifierKey
关于contentsOfDirectory(at:includingPropertiesForKeys:options:)API:includingPropertiesForKeys参数中传递的键告诉框架为了性能原因在获取内容的同时预取相应的属性。例如
let contentURLs = try fileManager.contentsOfDirectory(at: anURL, includingPropertiesForKeys: [.nameKey, .fileSizeKey], options: .skipsHiddenFiles)
Run Code Online (Sandbox Code Playgroud)
要读取resourceValues(forKeys传递相同键的 URL 上的属性调用contentsOfDirectory。然后获取资源键对应属性的值。组合的好处URLResourceKey / URLResourceValues是您始终可以从文件属性中获得正确的类型。这避免了任何类型转换。
for fileURL in contentURLs {
do {
let fileAttributes = try fileURL.resourceValues(forKeys:[.nameKey, .fileSizeKey])
print(fileAttributes.name!) // is String
print(fileAttributes.fileSize!) // is Int
} catch { print(error, fileURL) }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1512 次 |
| 最近记录: |