gpt4 book ai didi

c++ - 无法在 Windows 中以编程方式 (C++) 从其他用户帐户读取文件

转载 作者:可可西里 更新时间:2023-11-01 11:59:46 24 4
gpt4 key购买 nike

我使用以下函数在 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();

}
}

但是,每当我从同一个用户帐户读取时,上述功能都能完美运行并正确打开和读取文件。

两个用户帐户都是管理员帐户。

总而言之,在一个用户帐户中以编程方式写入文件并从其他用户帐户读取会给出“文件不存在”的异常..但事实是文件存在并且我可以使用单击手动打开该文件。

最佳答案

默认情况下,用户的个人资料只能由该用户访问。此外,Windows 没有访问任何其他用户配置文件的标准方法。

您最好的选择是使用公共(public)/共享位置,在 C:\ProgramData\(根据需要设置权限)或在公共(public)文档文件夹中。位置取决于文件是什么。

关于c++ - 无法在 Windows 中以编程方式 (C++) 从其他用户帐户读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11246913/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com