gpt4 book ai didi

objective-c - OSX 中的事务性文件操作

转载 作者:太空狗 更新时间:2023-10-30 03:55:24 25 4
gpt4 key购买 nike

我正在尝试执行以下操作:

  • 读取文件的属性
  • 如果属性符合某个条件,删除文件

现在我正在使用 NSFileManager 执行 attributesOfItemAtPath:error:,然后是 removeItemAtPath:error:。我担心这两个操作之间会发生某些事情,使初始检查无效。

使这两个操作成为原子操作的最佳方法是什么?

编辑

到目前为止的答案建议文件锁定,我已经尝试研究过。我能找到的最接近的东西是设置 NSFileImmutable旗帜。但似乎任何其他程序都可以出现、取消设置并修改文件。有没有更好的方法来锁定文件?

编辑2

有人要求用例。假设我正在尝试使两个文件夹保持同步。对一个文件夹中的文件所做的任何更改都会反射(reflect)在另一个文件夹中,反之亦然。如果我从文件夹 A 中删除文件 1,我也会从文件夹 B 中删除文件 1。但是如果文件夹 B 中的文件 1 在我删除它之前发生了变化;然后我不想删除它,而是想将它同步回文件夹 A

最佳答案

您可以使用强制(内核强制)文件锁定来锁定有问题的文件,以防止在操作文件时对文件进行更改。我知道 Linux 和 Solaris 支持强制文件锁定,但我不知道 OS X/HFS+ 是否支持以及如何使用它。希望这会有所帮助。

关于objective-c - OSX 中的事务性文件操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11782806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com