0

我正在 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);
4

1 回答 1

0

使用 ApplicationData.Current.LocalFolder.Path 而不是 System.IO.Directory.GetCurrentDirectory()。默认位置是 C:\Users\username\AppData\Local\Packages\你的包名\LocalState

于 2020-07-03T03:39:01.557 回答