2012-08-19 23 views
0

我试图找出以下问题,但我无法做到这一点,因为我刚刚开始编程一个月前。从列表框中的项目下载多个文件

我有20个项目列表框:

private void loadDownloadXMLListBox() 
{ 
    var items = new[] { "BARC", "DEV", "DOM", "EZJ", "GFS", 
         "IHG", "JD.", "LAD", "LLOY", "MRW", 
         "NXT", "OCDO", "RBS", "SMWH", "SPD", 
         "STAN", "SYR", "TALK", "TSCO", "WMH" }; 
    foreach (var item in items) listDownloadXML.Items.Add(item); 

    listDownloadXML.SelectedIndex = -1; 
} 

这是我从网站上下载一个选定的文件代码:

private void btnDownloadXML_Click(object sender, EventArgs e) 
{ 
    using (WebClient client = new WebClient()) 
    { 
     client.DownloadFile("http://www.lse.co.uk/chat/" + listDownloadXML.SelectedItem, 
                @"..\..\sharePriceXML\" + 
             listDownloadXML.SelectedItem + ".xml"); 
    } 
    MessageBox.Show("Download Completed! File has been placed in the folder sharePriceXML!"); 
} 

我想点击一个按钮“下载所有“那么,网站上的所有20个项目都将被下载。我是否可以知道如何循环访问列表框中的20个项目并将它们全部下载到文件夹中而不选择项目?谢谢。

回答

2
foreach (var item in listDownloadXML.Items) 
{ 
    //... your code to download "item". 
} 
+0

谢谢你的帮助。 :) – Shyuan 2012-08-19 15:38:21

1

您可以通过外在的下载单个文件功能集成到一个单独的,可重用的方法来启动:

public void DownloadFile(string item) 
{ 
    using (var client = new WebClient()) 
    { 
     client.DownloadFile(
      "http://www.lse.co.uk/chat/" + item, 
      @"..\..\sharePriceXML\" + item + ".xml" 
     ); 
    } 
    MessageBox.Show("Download Completed! File has been placed in the folder sharePriceXML!"); 
} 

然后:

private void btnDownloadXML_Click(object sender, EventArgs e) 
{ 
    DownloadFile((string)listDownloadXML.SelectedItem); 
} 

和现在你对多个文件的问题=>您使用循环并为列表框中的每个元素调用DownloadFile方法:

foreach (string item in listDownloadXML.Items) 
{ 
    DownloadFile(item); 
} 
+0

谢谢你的帮助:) – Shyuan 2012-08-19 15:39:16

相关问题