0

次の問題を理解しようとしましたが、1か月前にプログラミングを始めたばかりなので、できません。

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;
}

これは、Web サイトから選択した単一のファイルをダウンロードするための私のコードです。

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!");
}

「すべてダウンロード」ボタンをクリックすると、Web サイトの 20 項目すべてがダウンロードされます。リストボックス内の 20 個のアイテムをループして、アイテムを選択せず​​にすべてのアイテムをフォルダーにダウンロードする方法を教えてください。ありがとうございました。

4

2 に答える 2

2
foreach (var item in listDownloadXML.Items)
{
    //... your code to download "item".
}
于 2012-08-19T15:07:45.323 に答える
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);
}
于 2012-08-19T15:06:33.700 に答える