具有某种持久性ID的监视文件

问题描述 投票:0回答:1

我的应用程序将文件写入用户共享的Documents目录。我保存了文件路径,但是如果用户更改文档名称,将文档移至新位置等,此操作就会中断。是否可以使用某种持久性文件ID来跟踪这些文档?我一直在四处逛逛

FileManager.default.attributesOfItem(atPath: docUrl.path)

并且我发现诸如FileAttributeKey.systemFileNumber之类的属性,但是每次我运行该应用程序时,此数字似乎都会改变。除了路径以外,还必须有某种方法来跟踪文件

ios swift filesystems
1个回答
0
投票

您需要使用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
}
© www.soinside.com 2019 - 2024. All rights reserved.