Swift 是否可以访问不为';没有下载吗? 问题

Swift 是否可以访问不为';没有下载吗? 问题,swift,macos,appdelegate,nsurl,Swift,Macos,Appdelegate,Nsurl,在获取扩展名为.iCloud的未下载iCloud文件的.fileSizeKey和.localizedTypeDescriptionKey时,我得到了一个不正确的文件大小,并且描述被列为别名 var url=url(fileURLWithPath:“/.image.png.icloud”) var fileResources:URLResourceValues? let keys:Set=[.localizedTypeDescriptionKey、.fileSizeKey] 做{ guard le

在获取扩展名为
.iCloud
的未下载iCloud文件的
.fileSizeKey
.localizedTypeDescriptionKey
时,我得到了一个不正确的文件大小,并且描述被列为别名

var url=url(fileURLWithPath:“/.image.png.icloud”)
var fileResources:URLResourceValues?
let keys:Set=[.localizedTypeDescriptionKey、.fileSizeKey]
做{
guard let resources=try url?.resourceValues(forKeys:keys)else{return}
fileResources=resources
}捕获{}
打印(fileResources?.localizedTypeDescription)//别名
打印(fileResources?.fileSize)//192字节(当它应该是4MB时)
我试过的
  • 我已尝试设置一个
    NSFileCoordinator()
    来请求文件的元数据,但没有成功
  • var错误:n错误?
    let coordinator=NSFileCoordinator(filePresenter:nil)
    coordinator.coordinate(readingItemAt:url!,选项:。立即可用MetadataOnly,错误:&错误){url在
    做{
    let resources=try URL.promisedItemResourceValues(forKeys:[.fileSizeKey])
    print(resources.fileSize)//192字节(文件类型也读取为别名)
    }捕获{}
    }
    
  • 我也尝试过MDItem,它确实可以工作,但它不可靠,因为有时没有元数据(例如邮件文件),我必须关闭沙箱才能让它工作
  • 让md=MDItemCreateWithURL(kcfolocatordefault,url!as CFURL)//如果启用了沙盒,则为nil
    让meta=MDItemCopyAttribute(md,kMDItemFSSize)
    打印(元)//4MB(正确大小)
    
  • 我还尝试获取
    .image.png.icloud
    url并尝试查找别名原始url,但似乎不可能,因为该文件实际上不是别名
  • 我在考虑什么 我想这是可能的,因为Finder的“获取信息”窗格在获取信息方面没有问题。我想知道是否可以暂时更改文件并删除url的
    。.icloud'
    组件,但我不确定如何执行此操作,因为我认为这涉及到文件的复制或复制

    提前感谢您