我已經寫了下面的代碼行打開InstalledFolder目錄下的文件被拒絕的錯誤:CreateFile2返回訪問Windows 8
Platform::String^ locationPath = Platform::String::Concat(Package::Current->InstalledLocation->Path, "\\Assets\\Logo.png");
CREATEFILE2_EXTENDED_PARAMETERS extendedParams = {0};
extendedParams.dwSize = sizeof(CREATEFILE2_EXTENDED_PARAMETERS);
extendedParams.dwFileAttributes = FILE_ATTRIBUTE_NORMAL;
extendedParams.dwFileFlags = FILE_FLAG_SEQUENTIAL_SCAN;
extendedParams.dwSecurityQosFlags = SECURITY_ANONYMOUS;
extendedParams.lpSecurityAttributes = nullptr;
extendedParams.hTemplateFile = nullptr;
Wrappers::FileHandle file(
CreateFile2(
locationPath->Data(),
GENERIC_READ,
0,
OPEN_EXISTING,
&extendedParams
)
);
DWORD e = GetLastError();
if (file.Get() == INVALID_HANDLE_VALUE)
{
throw ref new Platform::FailureException();
}
的CreateFile2返回拒絕訪問錯誤。任何人都可以請幫我嗎?
正如JP Alioto的建議,我曾嘗試與WinRT的文件I/O爲以下
create_task(StorageFile::GetFileFromApplicationUriAsync(ref new Windows::Foundation::Uri("ms-appx:///Assets/Logo.png")))
.then([=](StorageFile^ f)
{
auto p = create_task(f->OpenAsync(FileAccessMode::Read));
p.wait();
});
我仍然可以在p.wait以下錯誤():
無效參數傳遞給該考慮的參數無效死亡
感謝功能,
WinRT應用程序在沙箱中運行,對文件系統的訪問受到嚴格限制。你無能爲力。 –
但我應該能夠讀取部署文件夾下的文件。我錯過了什麼嗎? – Liton