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

时间:2009-09-16 16:11:49

标签: c# .net file-io visual-studio-2008

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

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

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