1

我正在使用 webclient 下载 C# winform 应用程序,所有文件都很好,除了 app.exe、app.exe.config 和 app.pdb。文件的大小为 0 字节。在我的网络酒店中,文件大小很好,但下载后出现错误。

这是我用来下载的代码:

private void downloader()
    {
        string desktop = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
        if (!System.IO.Directory.Exists(folderBrowserDialog1.SelectedPath))
            System.IO.Directory.CreateDirectory(folderBrowserDialog1.SelectedPath);
        WebClient client = new WebClient();

        client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(client_DownloadProgressChanged);
        client.DownloadFileCompleted += new AsyncCompletedEventHandler(client_DownloadFileCompleted);
        var xdoc = XDocument.Load("http://Mywebsite.Mine/Programs/PatientStorage/update.xml");
        var items = from i in xdoc.Root.Elements("item")
                    select new
                    {
                        Url = (string)i.Element("url"),
                        Name = (string)i.Element("name")
                    };

        foreach (var item in items)
        {
            if (nummer >= urls.Length)
                Array.Resize(ref urls, urls.Length + 1);
            urls[nummer] = item.Url;


            if (nummer >= names.Length)
                Array.Resize(ref names, names.Length + 1);
            names[nummer] = item.Name;

            nummer++;
        }

        var UrlsAndNames = urls.Zip(names, (u, n) => new { urls = u, names = n });

        foreach (var nw in UrlsAndNames)
        {
            AgainConf:
            try
            {
                DateTime startagain = DateTime.Now.AddSeconds(1);
                while (DateTime.Now < startagain)
                {
                    this.Refresh();
                    this.Invalidate();
                }
                currentDownload = nw.names;
                client.DownloadFileAsync(new Uri(nw.urls), folderBrowserDialog1.SelectedPath + @"\" + nw.names + "");
                this.Refresh();
                this.Invalidate();
            }
            catch
            { goto AgainConf; }
        }
    }

我的文件怎么会丢失所有代码?我用记事本查看了文件,根本没有代码。当我直接从我的网络酒店下载 app.exe 文件时,代码就在那里,但应用程序没有出现。

如果您需要更多信息,请告诉我。任何帮助将不胜感激,在此先感谢。

编辑:

现在,当我直接从网络酒店下载文件时,程序窗口就会出现。我相信这是因为当通过程序下载文件时出现问题,它出错了。一件奇怪的事情是:当我使用 try catch 循环时,我在下载文件时没有收到任何错误。实际上,下载另一个文件时出错,但该文件是完整的。

4

1 回答 1

0

这可能是因为这些文件共享相同的名称(扩展名不同)。

于 2013-10-14T13:31:35.073 回答