我正在 Microsoft Graph 团队做这个练习:从 OneDrive 访问和下载文件。并且我在该部分末尾的以下代码中收到以下访问被拒绝错误Download a file from the user's OneDrive
::
拒绝访问路径“C:\DotNETCore2019\UWP\AccessFilesTrainingCourse\bin\x86\Debug\AppX\driveItem_17B6A4972C38846A!2923.file”。
带问题的备注:错误发生在var driveItemFile = System.IO.File.Create(driveItemPath);
下面的代码行。我知道 UWP 应用默认可以访问某些文件系统位置。应用程序还可以通过文件选择器访问其他位置,或者通过声明此处说明的功能来访问其他位置。根据这个官方链接,其中一个默认位置是Application install directory
在调试模式下应该是...\bin\debug
文件夹。来自 MS Graph 团队的上述链接教程没有提到在应用程序的 Package.appxmanifest 文件中声明功能。那么,为什么会出现错误以及我们如何解决它without
声明broadFileSystemAccess
功能 - 因为您不想在所有情况下都免费?
代码:
// request 3 - download specific file
var fileId = "REPLACE_THIS"; //I have correctly placed corresponding fileid here
var request = client.Me.Drive.Items[fileId].Content.Request();
var stream = request.GetAsync().Result;
var driveItemPath = Path.Combine(System.IO.Directory.GetCurrentDirectory(), "driveItem_" + fileId + ".file");
var driveItemFile = System.IO.File.Create(driveItemPath);
stream.Seek(0, SeekOrigin.Begin);
stream.CopyTo(driveItemFile);
Console.WriteLine("Saved file to: " + driveItemPath);