Winforms应用程序不保存下载的文件

本文关键字:文件 下载 保存 应用程序 Winforms | 更新日期: 2023-09-27 18:35:17

我正在创建一个小型的 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);

更新:这是一个权限问题,为了解决这个问题,我强制应用程序以管理员身份运行。

Winforms应用程序不保存下载的文件

如果这不是权限问题,我会感到惊讶。为适当的用户提供对要写入的文件夹的读/写,看看这是否不能解决问题。它在Visual Studio中工作的原因是Visual Studio(很可能)以管理员身份运行,因此它的子任务也是如此,就像这个一样。如果这不起作用,请再加入一些调试语句以查看哪里开始出错。

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