Swift 移动到垃圾箱时的URL书签数据

Swift 移动到垃圾箱时的URL书签数据,swift,macos,cocoa,Swift,Macos,Cocoa,我使用URL书签数据(具有安全范围)。将文件移动到垃圾箱后(可能是在应用程序未运行时),书签将更新。这通常是好的,但是当一个文件被移动到垃圾箱时,我真的想反映这一点并删除我的书签 我能想到的唯一解决方法是存储原始URL,比较它们的绝对字符串,或者检查.Trash 是否有一种(简单的?)方法来检查书签数据现在是否指向垃圾箱?文件管理器如果URL引用垃圾箱中的文件,可以使用这些方法 垃圾箱,这避免了硬编码垃圾箱文件夹路径。这是 汉语中Objective-C码的翻译 到Swift,作为URL的扩

我使用
URL
书签数据
(具有安全范围)。将文件移动到垃圾箱后(可能是在应用程序未运行时),书签将更新。这通常是好的,但是当一个文件被移动到垃圾箱时,我真的想反映这一点并删除我的书签

我能想到的唯一解决方法是存储原始
URL
,比较它们的
绝对字符串
,或者检查
.Trash


是否有一种(简单的?)方法来检查
书签数据
现在是否指向垃圾箱?

文件管理器
如果URL引用垃圾箱中的文件,可以使用这些方法 垃圾箱,这避免了硬编码垃圾箱文件夹路径。这是 汉语中Objective-C码的翻译

到Swift,作为
URL
的扩展:

extension URL {

    func inTrashFolder() -> Bool {
        do {
            let fm = FileManager.default
            let trashFolder = try fm.url(for: .trashDirectory, in: [], appropriateFor: self, create: false)
            var relationShip = FileManager.URLRelationship.other
            try fm.getRelationship(&relationShip, ofDirectoryAt: trashFolder, toItemAt: self)
            return relationShip == .contains
        } catch {
            return false
        }
    }
}

这可能会有帮助:@MartinR当然有!