pep*_*psi 5 filesystems macos cocoa objective-c
我正在尝试执行以下操作:
现在我正在使用后续NSFileManager执行.我担心在初始检查无效的两个操作之间会发生一些事情.attributesOfItemAtPath:error:removeItemAtPath:error:
使这两个操作成为原子的最佳方法是什么?
编辑
到目前为止的答案建议文件锁定,我试过调查.我能找到最接近的东西是设置NSFileImmutable旗帜.但似乎任何其他程序都可以出现,取消设置,并修改文件..是否有更好的方法来锁定文件?
编辑2
有人要求用例.假设我正在尝试保持两个文件夹同步.对一个文件夹中的文件所做的任何更改都会在另一个文件夹中进行镜像,反之亦然.如果我从文件夹A中删除文件1,我也会从文件夹B中删除文件1.但是如果文件夹B中的文件1在删除之前就改变了; 然后我想将它同步回文件夹A而不是删除它
您可以使用强制(内核强制)文件锁定来锁定有问题的文件,以防止在操作文件时对该文件进行更改。我知道 Linux 和 Solaris 支持强制文件锁定,但我不知道 OS X / HFS+ 是否支持以及如果支持如何使用它。希望这可以帮助。