我正在使用UIDocument将文档文件保存到Documents目录中的本地存储沙箱中。我在iCloud中有另一个同名文件。我该如何检查这两个文件是相同文档文件的副本还是相同名称的两个不同文档文件的副本?
使用NSFileVersion不会告诉我它们是否是同一文件,而是文件的版本。
我尝试获取文件的资源值,但是本地存储沙箱中的文件给了我零作为文档标识符。
以下是使用documentIdentifier资源值的代码:
let localFileResourceValues = try? self.document!.fileURL.resourceValues(forKeys: [URLResourceKey.documentIdentifierKey])
let iCloudFileResourceValues = try? destinationURL.resourceValues(forKeys: [URLResourceKey.documentIdentifierKey])
print("documentIdentifier", localFileResourceValues?.documentIdentifier as Any, iCloudFileResourceValues?.documentIdentifier as Any, localFileResourceValues?.documentIdentifier == iCloudFileResourceValues?.documentIdentifier)
打印结果:
documentIdentifier nil可选(133819)false
是否可以从本地存储沙箱中的文件获取NSMetadataItem?
我将不胜感激。
答案 0 :(得分:0)
要确定两个文件路径是否指向同一文件对象,您需要使用NSString stringByStandardizingPath
来规范化文件路径,然后使用NSString stringByResolvingSymlinksInPath:
来解析符号链接,然后比较路径。 This web page有一个很好的描述和现成的代码。
要找出两个文件是否具有相同的内容,即使它们可能是不同的文件对象,则NSFileManager contentsEqualAtPath:andPath:
也很有用。