URLResourceKey是文件系统“元数据字段的键名集合”。用于告诉系统需要读取或提前缓存的文件属性,例如文件大小、是否目录等字段。
基本用法
1、单文件读取
配合resourceValues获取文件 URL 各种元数据属性。
let values = try fileURL.resourceValues(forKeys: [.fileSizeKey])
print(values.fileSize)
2、获取单个属性
let size = try url.resourceValues(forKeys: [.fileSizeKey]).fileSize
3、批量预加载属性
FileManager.default.enumerator(
at: url,
includingPropertiesForKeys: [.fileSizeKey]
)
4、设置文件属性
try url.setResourceValue(true, forKey: .isExcludedFromBackupKey)
常用字段
1、文件类型
isRegularFileKey:是否是常规(普通)文件。
isDirectoryKey:是否目录。
isSymbolicLinkKey:是否符号链接。
isPackageKey:是否包。
isHiddenKey:是否隐藏。
2、存储大小
fileSizeKey:文件逻辑大小(单位:字节)。
totalFileSizeKey:对于包或目录,返回其总大小。
fileAllocatedSizeKey:实际磁盘占用。
totalFileAllocatedSizeKey:实际占用(完整)。
3、时间类
creationDateKey:创建时间。
contentModificationDateKey:最后修改时间。
contentAccessDateKey:最后访问时间,清理长期未使用缓存。
4、权限类
isReadableKey:是否可读。
isWritableKey:是否可写。
isExecutableKey:是否可执行。
5、类型标识
typeIdentifierKey (UTI):类型标识符。
localizedTypeDescriptionKey:本地化类型描述(用户可读)。
6、扩展属性
nameKey:文件名称。
tagNamesKey:Finder标签(颜色标签),例如 [“Red”, “Work”]。
localizedNameKey:本地化名称(如显示名)。
isExcludedFromBackupKey:是否被排除在时间机器/ iCloud 备份之外,true表示不参与系统备份,temp等临时文件应该设置为true。
try url.setResourceValue(true, forKey: .isExcludedFromBackupKey)
fileResourceTypeKey:文件类型(目录、文件、符号链接等)。
volumeAvailableCapacityKey:所在卷的剩余容量。
总结
URLResourceKey类型可以描述需要读取的哪一类文件属性。
