问题描述
问题
当为扩展名为 .fileSizeKey
的未下载的 iCloud 文件抓取 .localizedTypeDescriptionKey
上的 URL.resourceValues
和 .icloud
时,我得到不正确的文件大小和描述被列为别名。
var url = URL(fileURLWithPath: "/.image.png.icloud")
var fileResources: URLResourceValues?
let keys: Set<URLResourceKey> = [.localizedTypeDescriptionKey,.fileSizeKey]
do {
guard let resources = try url?.resourceValues(forKeys: keys) else { return }
fileResources = resources
} catch {}
print(fileResources?.localizedTypeDescription) // Alias
print(fileResources?.fileSize) // 192 bytes (when it should be 4MB)
我的尝试
var error: NSError?
let coordinator = NSFileCoordinator(filePresenter: nil)
coordinator.coordinate(readingItemAt: url!,options: .immediatelyAvailableMetadataOnly,error: &error) { URL in
do {
let resources = try URL.promisedItemResourceValues(forKeys: [.fileSizeKey])
print(resources.fileSize) // 192 bytes (file type reads as Alias too)
} catch {}
}
let md = MDItemCreateWithURL(kcfAllocatorDefault,url! as CFURL) // nil if sandBox is enabled
let Meta = MDItemcopyAttribute(md,kMDItemFSSize)
print(Meta) // 4MB (correct size)
- 我还尝试使用
.image.png.icloud
url 并尝试找到别名原始 url,但似乎不可能,因为该文件实际上不是别名。
我在考虑什么
我想这是可能的,因为 Finder 的获取信息窗格在获取信息时没有问题。我想知道是否可以更改文件并暂时删除 url 的 '.'
和 '.icloud'
组件,但我不确定如何处理,因为我相信它涉及重复或复制文件。
预先感谢您!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)