can we lock a directory?

2020-03-05 03:19发布

问题:

I am using VSTS 2008 + C# + .Net 3.5 to develop a console application. For file access, we can access file in exclusive mode which blocks other process/thread from access the file -- which has the effect of "lock" the file.

I am wondering for directory, are there any built-in API or solution to make the directory exclusive access -- has the effect of "locked"? For example, if one thread "locks" the directory, other thread/process can not call Directory.GetFiles, can not write file to the directory, can not read a file from the directory, etc.

回答1:

If it is your own process that might interfere you can use a named Mutex to synchronize. It is very hard to keep out other processes, the usual approach is to evade to a temp (hidden) dir, do your work and copy/move the results back.



回答2:

I think what you can do is set the directory's Access Control and then change it back when your done. Have a look here:

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