【问题标题】:C# Access Denied when trying to Copy and XML file尝试复制和 XML 文件时 C# 访问被拒绝
【发布时间】:2017-07-14 04:29:01
【问题描述】:

c# 问题在这里。尝试移动 xml 文件时,我不断获得访问被拒绝。我知道问题在于它正在创建一个没有管理员权限的临时 XML 文件,我尝试使用 require admin = true 行编辑 appmanifest 无济于事。我也尝试在程序之外设置权限并以管理员身份运行 Visual Studio。

Link to the pastebin code.
https://pastebin.com/M7dRTXHY

实际上我昨天使用完全不同的代码得到了答案,但我的老师说我必须这样做。我已经花了几个小时试图调试它,但我正在失去理智。

它也是一个 Windows 10 手机应用程序,不确定这是否会改变任何东西。

我意识到有一百万个类似的问题,但我无法解决任何问题。

这是我直接从我的课程中学习的确切教程。

【问题讨论】:

  • InstalledLocation 不是只读文件夹吗?您正在尝试对其中的文件进行移动,这将尝试删除源文件,但没有这样做的权限。看看 Copy 是否有效,因为这将消除目的地的权限问题。
  • 嗨,詹姆斯,感谢您的回复。我倾向于我被错误地教导,但我上传了一张教程的图片,你能看看我是否在某个地方犯了错误?

标签: c# visual-studio xamarin mobile


【解决方案1】:

使用 StorageFile 进行移动/复制/删除等操作:

private async void Grid_Loading(FrameworkElement sender, object args)
{
   Windows.ApplicationModel.Package package = Windows.ApplicationModel.Package.Current;
   StorageFolder installedLocation = package.InstalledLocation;
   StorageFolder targetLocation = ApplicationData.Current.LocalFolder;

   var targetFile = await installedLocation.GetFileAsync("Contacts.xml");
   await targetFile.MoveAsync(targetLocation);
   TARGETFILEPATH = ApplicationData.Current.LocalFolder.Path.ToString() + "\\Contacts.xml";
   loadContacts();
}

更多关于 StorageFiles here.

【讨论】:

  • 嘿,伙计,谢谢他的回复。这就是我的课程向我展示如何做到这一点的方式。你说这是不是错了。 imgur.com/a/5BFzB 如果课程错了,我不会感到惊讶。我只是想确保这不是我的错误。
  • 好的,感谢您的评论。这是否也意味着pastebin.com/YUigWa46这里的loadContacts()也是错误的。 Obvisouly 我也需要弄清楚 TARGETFILEPATH 已经不存在了,所以我需要改变它,但是这样就不行了吗?
  • @Rick1990,我修改了答案并添加了 TARGETFILEPATH 初始化。现在 loadContacts() 应该可以按预期工作了。
  • 我已经尝试了该解决方案,但我收到一条错误消息,指出 imgur.com/a/koPhh 如果我没有收到该错误消息,我将收到一条错误消息,指出找不到该文件。我尝试用谷歌搜索这个错误,但它所说的只是将contacts.xml文件更改为内容并始终复制它已经设置的内容。
  • @Rick1990,当你移动文件时它会被移动,所以下次你会得到“FileNotFoundException”,因为它被移动到目标目录,如果你重新编译文件将被再次复制到项目文件夹,但是当您尝试移动它时,您将得到 "FileAlreadyExists" ,因此总结一下,如果该文件已存在于 TargetPath 中,您将不得不删除该文件,并在每次成功移动后重新编译您的项目以将其放回您的appx 文件夹。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-29
  • 2021-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多