我们可以锁定一个目录吗?

我正在使用VSTS 2008 + C#+ .Net 3.5来开发控制台应用程序。 对于文件访问,我们可以以独占模式访问文件,阻止其他进程/线程访问文件 – 这具有“锁定”文件的效果。

我想知道目录,是否有任何内置的API或解决方案使目录独占访问 – 具有“锁定”的效果? 例如,如果一个线程“锁定”目录,其他线程/进程无法调用Directory.GetFiles,无法将文件写入目录,无法从目录中读取文件等。

如果您自己的进程可能会干扰,则可以使用命名的Mutex进行同步。 保持其他过程非常困难,通常的方法是逃避临时(隐藏)目录,完成工作并复制/移动结果。

我认为您可以做的是设置目录的访问控制,然后在完成后将其更改回来。 看看这里:

http://msdn.microsoft.com/en-us/library/system.io.directory.setaccesscontrol.aspx