您好,我有一个简单的问题 - 使用 CreateFile 在只读文件上打开读/写句柄有哪些选项?我是否必须暂时删除只读属性,打开句柄,完成工作,然后重新应用该属性?还有其他方法吗?对于我的情况,相关程序具有管理权限。
这是现在的一些代码以及出现的问题:
HANDLE hTargetFile;
hTargetFile = CreateFile(QDir::toNativeSeparators(targetFileString).toStdWString().c_str(),GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL|FILE_FLAG_BACKUP_SEMANTICS,NULL);
我从 GetLastError() 得到 CreateFile 失败,错误 5:访问被拒绝。。
谢谢!
使用 CreateFile 在只读文件上打开读/写句柄有哪些选项?没有。您无法获取只读文件的写入句柄 - 期间。
是否必须暂时删除只读属性,打开句柄,完成工作,然后重新应用该属性?是的,完全正确。当然,这会产生竞争条件,因为一旦您删除只读属性,对该文件具有足够权限的任何其他进程都可以打开该文件进行写入,并在您能够打开该文件之前阻止您。给自己归档。
还有其他方法吗?
据我所知。