我正在尝试使用C#和FileSystemWatcher监视文件夹。一切都运作良好,除了我可以删除我正在观看的文件夹
我以前在C中使用ReadDirectoryChangesW来做这个,通过创建文件夹的句柄并锁定它,这阻止了从用户删除或重命名到该文件夹(我说的是实际监控的文件夹,而不是它的内容)
有没有办法锁定该文件夹,以便人们在观看时不删除它?
(请注意,我不想更改该文件夹的权限,因为它可能位于FAT32分区/ usb驱动器/ etc上,不支持权限)
答案 0 :(得分:2)
不确定这是否是一个选项,但您可以在所述文件夹中创建一个(临时)文件,并在“监视”期间保持打开状态。当然,你需要再次清理它。 (你甚至可能会给它隐藏属性,因此它不会显示给'普通'用户)。
这不是最好的解决方案,当程序在删除文件之前崩溃时,文件仍会乱丢...