2013-10-14 56 views
1

我正在使用一个webclient下载一个C#winform应用程序,所有文件都很好的免除了app.exe,app.exe.config和app.pdb。文件的大小是0字节。在我的网站上,文件大小很好,但下载后却出错。下载后的exe文件大小为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; } 
     } 
    } 

怎么会是我的文件失去的每一个代码位?我用记事本看了一下这个文件,根本没有任何代码。当我直接从我的web酒店下载app.exe文件时,代码一直存在,但应用程序不显示。

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

编辑:

程序窗口现在显示了,当我直接从网上酒店下载文件。我相信这是因为在通过程序下载文件时出现问题,导致出错。奇怪的是:当我使用try catch循环时,我在下载文件时没有收到错误。实际上,下载ANOTHER文件时出现错误,但该文件完好无损。

回答

0

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

+0

所有文件都有一个扩展名,它就像这样(app.exe,app.exe.config和app.pdb)我做了一个编辑maby,你应该阅读它。 – MasterXD