我希望能够在Win32中锁定一个文件,以便它只能被当前进程使用。实现这个目标最明显的方法似乎是通过CreateFile
:
HANDLE file = ::CreateFile("c:\\foo.txt",
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
然而,一旦这个调用成功了,该文件也显然被我的进程锁定了,即一旦MFC框架尝试打开它时,我会收到"共享冲突"的错误。
是否有一种方便的方法可以阻止其他进程访问该文件,但仍允许我的进程访问?我不想替换所有的加载/保存框架代码... 我在传递给CreateFile的参数中做错了什么吗?