如何授予在磁盘或映射驱动器上写入的权限

时间:2019-04-10 13:51:42

标签: c# mvvm uwp unauthorizedaccessexcepti storagefile

我就像在C盘上(以及以后在网络上)创建一个新文件一样。

我想在一个带有openFilePicker的文件夹中选择一个文件(有效),然后单击一个按钮,例如,将该文件复制到我的桌面上。

文件属性:

public StorageFile File { get; set; }

openFilePicker代码:

public async Task GetFileAsync()
        {
            var picker = new FileOpenPicker();
            picker.ViewMode = PickerViewMode.Thumbnail;
            picker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
            picker.FileTypeFilter.Add("*");

            File = await picker.PickSingleFileAsync();
        }

要保存的代码:

public async Task SaveFileAsync()
        {
            try
            {
                StorageFolder test2 = await StorageFolder.GetFolderFromPathAsync(@"C:\Users\bvens\Desktop");

                await File.CopyAsync(test2, File.Name, NameCollisionOption.ReplaceExisting);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
        }

但是当尝试写入“ saveFileAsync”时,我遇到了UnauthorizedAccessException异常 =>

  

System.UnauthorizedAccessException:拒绝。 (来自HRESULT:0x80070005的异常(E_ACCESSDENIED))

谢谢

修改 问题在于,在UWP中,该应用程序位于另一个线程中,因此没有编写权限。您需要向用户询问您的应用可以转到目标文件(例如android)

(我们可以解决此问题)

1 个答案:

答案 0 :(得分:0)

  

当使用StorageFile.CopyAsync将已加密的文件复制到未加密的目标时,调用将失败,但出现以下异常:System.UnauthorizedAccessException:访问被拒绝。 (Excep_FromHResult 0x80070005)

我认为这是一个问题