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

Posted

技术标签:

【中文标题】如何授予在磁盘或映射驱动器上写入的权限【英文标题】:How give permission to write on disk or mapped drive 【发布时间】:2019-09-01 00:23:24 【问题描述】:

我只想在我的 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: Accès refusé。 (来自 HRESULT 的异常:0x80070005 (E_ACCESSDENIED))

谢谢

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

(我们可以关闭这个问题)

【问题讨论】:

我知道这个链接,但不幸的是,它并没有解释我如何在其他磁盘上写入 =/ 【参考方案1】:

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

我认为这是个问题

【讨论】:

以上是关于如何授予在磁盘或映射驱动器上写入的权限的主要内容,如果未能解决你的问题,请参考以下文章

映射网络驱动器是啥

从网页写入本地磁盘

如何授予 apache 使用 NTFS 分区上的目录的权限?

授予 Simba ODBC 驱动程序或 bigrquery 访问 Google Drive 文件的权限

授予 IIS Express 访问 VMWare 中的网络驱动器的权限

如何使用 .Net 直接写入磁盘?