我使用以下功能在 Windows 的一个用户帐户中创建了一个包含一些日志的文本文件:
WORD wBOM = 0xFEFF;
HANDLE hFile = ::CreateFileW(filePath, GENERIC_WRITE, 0, NULL,CREATE_NEW,FILE_ATTRIBUTE_NORMAL, NULL);
::WriteFile(hFile, &wBOM, sizeof(WORD), &NumberOfBytesWritten, NULL);
::CloseHandle(hFile);
现在,当我以编程方式从其他用户帐户读取此文件时,我无法打开文件并读取其内容。
我正在使用以下功能从其他用户帐户中读取。
CFile file;
CFileException *exp = NULL;
if(!file.Open( logAppExecPath,CFile::modeReadWrite | CFile::shareDenyNone,exp))
{
if(exp != NULL)
{
TCHAR ErrorMsg[MAX_PATH];
exp->GetErrorMessage(ErrorMsg,MAX_PATH);
AfxMessageBox(L"XML Creation while AppExecLogs : "+ CString(ErrorMsg));
exp->Delete();
}
}
但是,每当我从同一个用户帐户读取时,上述功能都可以正常工作并正确打开和读取文件。
两个用户帐户都是管理员帐户。
总之,以编程方式在一个用户帐户中写入文件并从其他用户帐户读取会出现“文件不存在”的异常......但事实是文件存在,我可以使用单击手动打开该文件。