- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我很难弄清楚这个错误的原因。我在 Manifest 中添加了 FilePicker
功能,这并不是我想做任何疯狂的事情;只是试图保存到文档文件夹中的子文件夹...
Error: "An unhandled exception of type 'System.UnauthorizedAccessException' occurred in mscorlib.dll
Additional information: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))"
我已确认我的用户帐户是管理员,并且它对文件夹和文件具有完全控制权。但我不确定我还能尝试什么。
public void NewBTN_Click(object sender, RoutedEventArgs e)
{
var mbox = new MessageDialog("Would you like to save changes before creating a new Note?", "Note+ Confirmation");
UICommand YesBTN = new UICommand("Yes", new UICommandInvokedHandler(OnYesBTN));
UICommand NoBTN = new UICommand("No", new UICommandInvokedHandler(OnNoBTN));
mbox.Commands.Add(YesBTN);
mbox.Commands.Add(NoBTN);
mbox.DefaultCommandIndex = 1;
mbox.ShowAsync().Start();
}
async void OnYesBTN(object command)
{
this.Dispatcher.Invoke(Windows.UI.Core.CoreDispatcherPriority.Normal, (s, a) =>
{
// User clicked yes. Show File picker.
HasPickedFile = true;
}, this, null);
if (HasPickedFile)
{
FileSavePicker savePicker = new FileSavePicker();
savePicker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary;
// Dropdown of file types the user can save the file as
savePicker.FileTypeChoices.Add("Cascading Stylesheet", new List<string>() { ".css" });
savePicker.FileTypeChoices.Add("Hypertext Markup Language", new List<string>() { ".html" });
savePicker.FileTypeChoices.Add("Plain Text", new List<string>() { ".txt" });
// Default extension if the user does not select a choice explicitly from the dropdown
savePicker.DefaultFileExtension = ".txt";
// Default file name if the user does not type one in or select a file to replace
savePicker.SuggestedFileName = "New Note";
StorageFile savedItem = await savePicker.PickSaveFileAsync();
if (null != savedItem)
{
// Application now has read/write access to the saved file
StorageFolder sFolder = await StorageFolder.GetFolderFromPathAsync(savedItem.Path);
try
{
StorageFile sFile = await sFolder.GetFileAsync(savedItem.FileName);
IRandomAccessStream writeStream = await sFile.OpenAsync(FileAccessMode.ReadWrite);
IOutputStream oStream = writeStream.GetOutputStreamAt(0);
DataWriter dWriter = new DataWriter(oStream);
dWriter.WriteString(Note.Text);
await dWriter.StoreAsync();
oStream.FlushAsync().Start();
// Should've successfully written to the file that Windows FileSavePicker had created.
}
catch
{
var mbox = new MessageDialog("This file does not exist.", "Note+ Confirmation");
UICommand OkBTN = new UICommand("Ok", new UICommandInvokedHandler(OnOkBTN));
mbox.Commands.Add(OkBTN);
mbox.DefaultCommandIndex = 1;
mbox.ShowAsync().Start();
}
}
}
}
public void OnOkBTN(object command)
{
this.Dispatcher.Invoke(Windows.UI.Core.CoreDispatcherPriority.Normal, (s, a) =>
{
// Do something here.
}, this, null);
}
public void OnNoBTN(object command)
{
this.Dispatcher.Invoke(Windows.UI.Core.CoreDispatcherPriority.Normal, (s, a) =>
{
// Don't save changes. Just create a new blank Note.
Note.Text = String.Empty;
}, this, null);
}
如何写入由 FileSavePicker 创建的文件?
最佳答案
您不需要调用 StorageFolder.GetFolderFromPathAsync(savedItem.Path)
和 sFolder.GetFileAsync(savedItem.FileName)
。您必须删除这两行,因为它们会抛出异常。您应该使用方法 savePicker.PickSaveFileAsync()
返回的 StorageFile 对象,因为该对象具有所有权限。然后您可以简单地调用 savedItem.OpenAsync(FileAccessMode.ReadWrite)
。
关于c# - 使用 FileSavePicker 写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8404034/
我有一个应用程序,用户可以在其中下载文件。我正在尝试使用 FileSavePicker让他选择位置和文件名。该文件可以是任何类型,所以我想要 FileSavePicker接受任何文件类型,但显然我不允
我很难弄清楚这个错误的原因。我在 Manifest 中添加了 FilePicker 功能,这并不是我想做任何疯狂的事情;只是试图保存到文档文件夹中的子文件夹... Error: "An unhandl
我正在尝试将现有文件保存到另一个地方。这是某种副本,但我想允许使用 FileSavePicker 的用户选择新的目的地。这是我的代码: StorageFile currentImage = await
我是第一次尝试使用 FileSavePicker,但是当我调用 await picker.PickSaveFileAsync(); 时,我不断收到“未指定的错误”,没有异常源。 我注意到异常数据字典包
努力使用文件保存选择器。我希望我的 savepicker 保存文件,我用 openpicker 打开并编辑它们。但是当我保存时,我通过 Savepicker 收到一个空的 0 字节文件。我可以使用本地
我有一个 Windows 8 Metro 风格的应用程序,我遇到了一个应该很容易完成的事情,但我发现很难找到一个解决方案。因为已经一周了,我仍然没有找到解决方案,所以我提供 300 代表的赏金来寻找可
用 var... 行更新了我的 SoundData 中的代码。我实际上已经看到要保存到现在的文件夹,但是当我尝试选择一个文件夹并保存到其中时出现异常。 + $exception {System.IO.
就个人而言,所有代码都能完美运行。用于保存文件的代码片段、用于选择要将其保存到的目录的代码片段以及消息对话框都非常有效。 但是,当我将它们全部联系在一起时,访问被拒绝。我没有使用 DocumentsL
我的第一个 WinUI 3 项目。我的第二个 C# 项目。我已经能够让 FileSavePicker 工作并显示一个对话框: 我要展示的是一个 stub 程序,它只是为了解决我在使用 FileSave
我想使用文件保存选择器保存图像。我正在使用 this链接保存,但它仅用于文本,我如何修改它以保存图像? 最佳答案 正如您所提供的 the link那么我假设您在 Continuation 之后设法获得
我想知道如何在 Metro 应用程序上更改 FileSavePicker 的主题。我只为 android 找到了这个问题的答案,但并没有太大帮助。而且我在 msdn 文档中没有找到任何内容。那么是否可
我正在尝试使用 FilePicker Task 保存视频文件,但它没有在解决方案中显示 FileSavePicker 任务。下面附上截图 Windows.Storage.Pickers 中只显示 4
我是一名优秀的程序员,十分优秀!