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

Posted

技术标签:

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

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

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

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

【问题讨论】:

这可能会有所帮助:***.com/a/47395827/1187415 @MartinR 当然可以! 【参考方案1】:

FileManager 方法可以在 URL 引用一个文件时使用 垃圾,这避免了对垃圾文件夹路径进行硬编码。这是 Objective-C 代码的翻译

Detect if file is in iCloudDrive Trash

到 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
        
    

【讨论】:

以上是关于移动到垃圾箱时的 URL 书签数据的主要内容,如果未能解决你的问题,请参考以下文章

将目录移动到垃圾箱

使用 C++ 在 Linux 中将文件移动到垃圾箱

删除/移动到垃圾箱时将项目标记为已读

OSX:以编程方式将文件从垃圾箱移动到其先前的位置

使用和垃圾收集

如何在 Godot 中恢复移动到垃圾箱的物品以及在哪里可以找到回收站?