如何使此代码在已使用最后一项时选择数组中的下一项
本文关键字:一项 选择 数组 何使此 代码 最后 | 更新日期: 2023-09-27 17:59:01
当上一个项目已经使用时,如何让这段代码选择数组中的下一个项目
有了链接,它做得很好(看起来)。它只正确添加第一个文件名,其他文件名为"System.String[]"
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.IO;
using System.Diagnostics;
using System.ComponentModel;
namespace J98_MP_CS
{
class Download
{
private static Queue<string> _items = new Queue<string>();
static string dl_loc = "C:''ProgramData''jyrka98''";
public static void Start()
{
string[] file_link_array = {
"LINK1"
"LINK2"
};
foreach (string i in file_link_array) { _items.Enqueue(i); }
DownloadItem();
}
private static void DownloadItem()
{
string[] file_name_array = {
"xvm_main_files.zip",
"jyrka98_xvm.zip",
"premium_hangar.zip",
"J1mB0_crosshair.zip",
"J1mB0_contour_icons_v1.zip",
"J1mB0_contour_icons_v2.zip",
"multiline_tank_carousel.zip",
"white_dead_tanks.zip"
};
if (_items.Any())
{
var nextItem = _items.Dequeue();
WebClient WC = new WebClient();
WC.Headers.Add("user-agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0");
WC.DownloadFileCompleted += new AsyncCompletedEventHandler(WC_DownloadFileCompleted);
WC.DownloadFileAsync(new Uri(nextItem), Path.Combine(dl_loc + file_name_array));
return;
}
}
private static void WC_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
{
DownloadItem();
}
}
}
*注意:为了缩短代码,我在这里只放了两个链接,而不是8个。
这有帮助吗?引入了一个类来保存链接和本地文件名。我想这就是你想要的。然后为每个链接/文件名组合排队一个条目。我宣布这个班在最前面,只是为了让大家团结起来。
class LinkAndFileName
{
public LinkAndFileName(string initLink, string initFileName)
{
link = initLink;
fileName = initFileName;
}
public string link { get; set; }
public string fileName { get; set; }
}
private static Queue<LinkAndFileName> _items = new Queue<LinkAndFileName>();
private static List<string> _results = new List<string>();
static string dl_loc = "C:''ProgramData''jyrka98''";
public static void Start()
{
LinkAndFileName[] file_link_array = new []
{
new LinkAndFileName("LINK1", "xvm_main_files.zip"),
new LinkAndFileName("LINK2", "jyrka98_xvm.zip"),
new LinkAndFileName("LINK3", "premium_hangar.zip"),
new LinkAndFileName("LINK4", "J1mB0_crosshair.zip"),
new LinkAndFileName("LINK5", "J1mB0_contour_icons_v1.zip"),
new LinkAndFileName("LINK6", "J1mB0_contour_icons_v2.zip"),
new LinkAndFileName("LINK7", "multiline_tank_carousel.zip"),
new LinkAndFileName("LINK8", "white_dead_tanks.zip"),
};
foreach (LinkAndFileName fileLink in file_link_array) { _items.Enqueue(fileLink); }
DownloadItem();
}
private static void DownloadItem()
{
if (_items.Any())
{
LinkAndFileName nextItem = _items.Dequeue();
WebClient WC = new WebClient();
WC.Headers.Add("user-agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0");
WC.DownloadFileCompleted += new AsyncCompletedEventHandler(WC_DownloadFileCompleted);
WC.DownloadFileAsync(new Uri(nextItem.link), Path.Combine(dl_loc + nextItem.fileName));
return;
}
}
private static void WC_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
{
DownloadItem();
}