【问题标题】:read and write to content - visual studio c# xamarin forms读取和写入内容 - visual studio c# xamarin forms
【发布时间】:2017-10-24 12:05:38
【问题描述】:

我的解决方案包含一个 txt 文件。构建操作是 VS 设置为内容。

我可以通过使用访问这个文件

var file = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///textfile.txt"));

但我无法在此文件中写入任何内容。

await FileIO.WriteTextAsync(file, "abcd");

我总是得到错误:

访问被拒绝。 (来自 HRESULT 的异常:0x80070005 (E_ACCESSDENIED))

我必须将构建操作设置为嵌入式资源吗?但后来我不能以 StorageFile 的形式访问这个文件。

【问题讨论】:

  • 对保存文件的文件夹添加读写权限,也许你也应该对文件添加权限
  • 此文件包含在 VS 解决方案本身中。如何设置这些文件的读/写权限?
  • 您可以转到解决方案所在的文件夹(应用程序数据、bin、脚本...),然后右键单击文件所在的文件夹,属性>安全并添加权限
  • 你说的是windows权限?该应用程序在我的用户下运行,该用户当然具有写入权限。但是 Windows 权限与解决方案中包含的文件有什么关系?他们应该有自己的权限。通常,它们应该在运行时处于 AppDate 之下。还是我完全错了?

标签: c# xamarin.forms uwp


【解决方案1】:

应用安装位置是只读的。在首次运行(或应用第一次需要它时)将您的文件 CopyAsync 写入 ApplicationData.LocalFolder,然后您将拥有一个可写的用户特定文件。

var file = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///textfile.txt"));
var copiedFile = await file.CopyAsync(ApplicationData.Current.LocalFolder);
await FileIO.WriteTextAsync(copiedFile, "abcd");

【讨论】:

  • 啊,好的。已经想到它可能是这样的。不确定它是否正确。以为我错过了什么。谢谢罗伯
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-03
  • 2013-02-02
  • 2020-09-21
  • 1970-01-01
  • 2017-07-14
相关资源
最近更新 更多