我的应用程序将文件写入用户共享的Documents目录。我保存了文件路径,但是如果用户更改文档名称,将文档移至新位置等,此操作就会中断。是否可以使用某种持久性文件ID来跟踪这些文档?我一直在四处逛逛
FileManager.default.attributesOfItem(atPath: docUrl.path)
并且我发现诸如FileAttributeKey.systemFileNumber之类的属性,但是每次我运行该应用程序时,此数字似乎都会改变。除了路径以外,还必须有某种方法来跟踪文件
您需要使用url书签,例如以下(抓痒的)
if let bookmark = try? URL(fileURLWithPath: docUrl.path)
.bookmarkData(includingResourceValuesForKeys: nil,
relativeTo:nil) {
// store somewhere persistent bookmark to your file
}
...
let bookmark = // read bookmark from persisten storage
var stale = false
if let url = try? URL(resolvingBookmarkData:bookmark, bookmarkDataIsStale: &stale) {
// work with resolved url
} else {
// file disappeared - handle the situation
}