我正在使用 WriteFile
写入文件。那很好用。它只是一个简单的字符串:
"Test string, testing windows functions".
我现在尝试从文件中读取并与我写入的字符串进行比较,以确保其正常工作。我有:
DWORD dwBytesRead;
char buff[128];
ReadFile(hFile, buff, 128, &dwBytesRead, NULL)
但它对我来说返回错误。 hFile
是我写入文件时使用的句柄。对可能发生的事情有任何想法吗?
编辑(根据评论更新):
我从 GetLastError()
得到了 E_ACCESSDENIED
。这是我如何得到 hFile
:
hFile = CreateFile (TEXT(movedFileName.c_str()),
GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
最佳答案
hFile
仅针对 GENERIC_WRITE
打开。如果您想从中读取并写入它,则需要使用 GENERIC_READ
打开它:
hFile = CreateFile (TEXT(movedFileName.c_str()),
GENERIC_WRITE | GENERIC_READ,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
关于c++ - 无法让 ReadFile 从我刚刚写入的文件中读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9179910/