【发布时间】: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 中)
(我们可以关闭这个问题)
【问题讨论】:
-
我知道这个链接,但不幸的是,它并没有解释我如何在其他磁盘上写入 =/
标签: c# mvvm uwp unauthorizedaccessexcepti storagefile