【问题标题】:OSX- Auto Delete file after x-timeOSX-x时间后自动删除文件
【发布时间】:2015-02-04 09:19:35
【问题描述】:

我们可以添加元数据以在 x-time 后自动取消链接/删除文件吗?也就是说,如果系统发现该文件附加了特定的元数据,系统会自动删除该文件

注意- 文件可以存在于任何位置,用户可以将该文件移动到其系统上的任何位置,但基于该元数据文件应该被删除(即系统应该调用取消链接/删除)那个文件。

是否有 cocoa/objective-c/c++ api 来设置文件的此类元数据/属性?

主要的一点是我正在创建一个应用程序,通过它我向用户提供一些试用文件,这些文件也可供其他识别它们的应用程序使用。试用期结束后,我想删除这些文件,但用户可以随时将我的文件移动到不同的位置并永久使用它们,如何保护这些文件不被永久使用?

【问题讨论】:

  • 虽然我已经给出了答案,但听起来您确实问错了问题 - 您是在尝试创建某种类型的缓存吗?
  • @Petesh 要点是我正在创建一个应用程序,通过它我向用户提供一些试用文件,这些文件也可供其他识别它们的应用程序使用。试用期到期后,我想删除这些文件,但用户可以随时将我的文件移动到不同的位置并永久使用它们,如何保护这些文件不被永久使用?

标签: c++ objective-c c macos cocoa


【解决方案1】:

不,没有基于某些元数据自动删除文件的内置机制。

您可以自己添加该功能,并附带一个代理,该代理将使用元数据搜索文件并在时间到来时将其删除。

【讨论】:

  • 您可以自己添加该功能,并附带一个代理,该代理将使用元数据搜索文件并在时机成熟时将其删除。我认为为此创建应用程序必须由系统启动,以便使用系统的任何用户都可以停止该应用程序?
  • 重点是我正在创建一个应用程序,通过它我向用户提供一些试用文件,并且这些文件也可供其他识别它们的应用程序使用。试用期到期后,我想删除这些文件,但用户可以随时将我的文件移动到不同的位置并永久使用它们,如何保护这些文件不被永久使用?
  • 既然我理解了你的推理,我建议接受文件不会被删除并从那时开始。有太多方法可以使文件进入无法删除的状态,即使如果您可以跟踪它们。如果我将文件放在 Windows 服务器上,您是否希望 Windows 服务器尊重“删除我”标志并删除文件?
  • 试用期满后,当用户启动应用程序时,您可以使用 NSMetaDataQuery 在系统中进行元数据搜索以查找这些文件并删除。
  • @SheenVempeny 这不会在.zip 文件、时间机器档案等中找到文件。如果有其他软件可以读取这些文件,如果该软件将数据复制出来会发生什么 - 你无法附加元数据,因为它不是在您的应用程序中创建的。我建议 OP 尝试不同的方法。
【解决方案2】:

如果您这样做是为了做好家务,您可以关注@Petesh 的回答。

如果您这样做是因为您真的希望这些文件消失,那么不。用户可以将文件移动到 U 盘并删除它,或者编辑元数据等。

您之前的问题"Completely restricting all types of access to a folder" 似乎解决了同样的问题,并且建议与那里给出的建议相同 - 使用加密或实施您自己的文件系统。

例如具有与普通格式相同的特殊“试用文件”格式(其他应用程序可以读取),但经过加密并包含到期日期。然后,您的应用会解密文件,检查日期,然后执行其操作或向用户报告文件已过期。

该系统并非牢不可破,但它是一个合理的障碍 - 对你来说很容易做到,对于普通用户来说很难打破。

【讨论】:

  • 有一个特殊的“试用文件”格式,它与普通格式相同 - 其他应用程序可以读取 - 但已加密并包含到期日期,其他应用程序如何使用我的文件能够解密?
  • 我可能误会了,我认为试用文件在您以外的应用程序中的可用性不是问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-05
  • 2022-08-16
相关资源
最近更新 更多