【问题标题】:URL bookmark data when moved to trash移动到垃圾箱时的 URL 书签数据
【发布时间】:2018-04-24 14:35:46
【问题描述】:

我使用URL bookmark data(带有安全范围)。将文件移至回收站后(可能是在应用程序未运行时),书签会更新。这通常很好,但是当文件被移到回收站时,我真的很想反映这一点并删除我的书签。

我能想到的唯一解决方法是存储原始URL 并比较它们的absoluteString 或检查.Trash

是否有(简单?)方法来检查bookmark data 现在是否指向垃圾箱?

【问题讨论】:

标签: swift macos cocoa


【解决方案1】:

FileManager 方法可以在 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
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-18
    • 1970-01-01
    相关资源
    最近更新 更多