WinRT项目中的CreateFile2错误(ERROR_NOT_SUPPORTED_IN_APPCONTAINER)

时间:2012-09-27 09:49:42

标签: windows-8 windows-runtime visual-studio-2012 createfile

我只是在WinRT中处理一些文件管理API。我在 ../ Packages / myApp / LocalState / 中成功创建了文件夹但是当我尝试在该文件夹中创建新文件( CreateFile2 )时,我得到了这个

error 4252: ERROR_NOT_SUPPORTED_IN_APPCONTAINER
This functionality is not supported in the context of an app container.

代码:

localFolder = L"C:\\Users\\Tomas\\AppData\\Local\\Packages\\myApp\\LocalState\\my";
CreateDirectory(localFolder.c_str(),NULL);
localFolder += L"\\MyFile.txt";
CREATEFILE2_EXTENDED_PARAMETERS pCreateExParams;
pCreateExParams.dwSize = sizeof(CREATEFILE2_EXTENDED_PARAMETERS);
pCreateExParams.dwFileAttributes = FILE_ATTRIBUTE_NORMAL;
pCreateExParams.lpSecurityAttributes = NULL;
pCreateExParams.hTemplateFile = NULL;

HANDLE myfile = CreateFile2(localFolder.c_str(), GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE, OPEN_ALWAYS, &pCreateExParams);
int error = GetLastError();

我做错了什么?我应该在清单中设置一些选项吗? 谢谢你的帮助

1 个答案:

答案 0 :(得分:1)

已经发现问题 - 在pCreateExParams结构中是.dwFileFlags和.dwSecurityQosFlags中的一些未定义值。所以这很好用:

CREATEFILE2_EXTENDED_PARAMETERS pCreateExParams = {0};