【问题标题】:Winforms application not saving downloaded filesWinforms应用程序不保存下载的文件
【发布时间】:2012-05-25 15:04:51
【问题描述】:

我正在创建一个小型 c# winforms 应用程序。它使用 sqlite 数据库来存储数据,我被要求在这个应用程序中添加一个更新功能,这样用户就可以更新 sqlite 文件以及任何其他文件,而无需重新安装应用程序。

问题是,当我进行更新时,它看起来好像一切正​​常,没有错误等,但是当我查看应用程序安装目录时,一些下载的文件丢失了(通常是 pdf 文件),一旦更新已下载它会创建一个 Updates.txt 文件来跟踪它完成的更新。如果我然后卸载并重新安装该应用程序,即使缺少 Updates.txt 文件,它也会像它已经完成更新一样。

奇怪的是,如果我在 Visual Studio 中运行并进行更新,那么它在 100% 的情况下都可以正常工作,而只是在我构建安装项目并安装导致问题的项目时。也许安装项目中有一个设置导致文件被复制到其他地方?我完全不知道。

请帮忙。谢谢。

编辑:这就是我下载文件的方式

String filename = "//test.pdf";

WebClient client = new WebClient();
client.DownloadFileCompleted += new AsyncCompletedEventHandler(Completed);

client.DownloadFileAsync(new Uri(dlFile), System.IO.Directory.GetCurrentDirectory() + filename);

更新:这是一个权限问题,我要修复它我 forced the app to run as administrator

【问题讨论】:

  • 你检查过你对你使用的文件夹有正确的权限吗?
  • 存储文件的目录路径是什么?
  • 您好,我已尝试更改权限,但似乎没有任何影响。还是同样的问题。如果这可行,我将如何确保在另一台用户机器上正确设置权限而无需访问它?
  • 如果计算机在您的网络上,您可以转到属性->编辑->添加->位置,选择您的网络,然后找到计算机。您可以尝试(暂时)授予“Everyone”用户(只需为用户键入“everyone”)对该文件夹的完全读/写访问权限。只需确保您位于正确的位置(在您的情况下,您希望将网络服务器作为位置)
  • 进一步调查是权限问题。太好了,谢谢@PhillipSchmidt!

标签: c# winforms updates


【解决方案1】:

如果这不是权限问题,我会感到惊讶。让适当的用户读/写您正在写入的文件夹,看看这是否不能解决问题。它在 Visual Studio 中工作的原因是 Visual Studio(很可能)以管理员身份运行,因此它的子任务也是如此,比如这个。如果这不起作用,请添加更多调试语句,看看哪里出了问题。

【讨论】:

  • 感谢您的回答。请参阅我对主要问题的评论。
【解决方案2】:

如果您在 Program Files 中安装应用程序,那么您可能没有写入文件的权限。您需要以管理员身份运行应用程序,或者通过代码提升它。

【讨论】:

  • 感谢您的回答。请参阅我对主要问题的评论。
猜你喜欢
  • 2014-07-11
  • 2017-01-03
  • 2018-01-08
  • 1970-01-01
  • 2020-10-10
  • 2019-03-16
  • 2016-02-26
  • 1970-01-01
  • 2020-10-17
相关资源
最近更新 更多