我想将文件的临时目录用作需要在远程目录中读写的多个应用程序(来自多台计算机)的锁,但在文档中没有解决此问题。有谁知道两个同时通话会发生什么?
http://msdn.microsoft.com/en-us/library/windows/desktop/aa363855%28v=vs.85%29.aspx
注意:我知道使用数据库是最好的,但在我的情况下这是不可能的。
答案 0 :(得分:2)
当您从不同的计算机上调用CreateDirectory
,传递相同的目录名时,只有一个呼叫会成功。如果是实际创建目录的调用,API函数将仅返回TRUE
。拥有文件系统的机器上的操作系统使这个过程成为原子。
但是,在CreateDirectory
的两次调用之间没有什么可以阻止另一个处理进入和删除目录。因此,虽然您可以获得原始形式的锁定工作,但它不是非常强大,需要所有各方合作。
同样的推理适用于CreateFile
。