我目前正在使用C#进行修补程序,但是有一个有趣的错误。 在代码中,所有链接都有一个循环文件名,程序需要下载它们。代码:(fájlNév= fileName,letöltött=已下载,összes= all,JelenlegiLetöltés= CurrentDownload,állás=州)
<!-- language: lang-c# -->
private void button1_Click(object sender, EventArgs e)
{
WebClient myWebClient = new WebClient();
string[] remoteUrl = new string[4] { "https://www.dropbox.com/s/62tt9w194xefk7t/", "https://www.dropbox.com/s/spni307vmk4zng9/", "https://www.dropbox.com/s/fsa29pelfwgk5ha/", "https://www.dropbox.com/s/mcn0wy2te4zqj1i/" };
string[] fájlNév = new string[4] { "alut.dll", "DevIL.dll", "fltkdll.dll", "glew32.dll" };
string fájlNévAlap = "BlackBox.dll", WebResource = null;
int letöltött = 0;
int össz = remoteUrl.Length;
for (int i = 0, x = 0; i < remoteUrl.Length && x < fájlNév.Length; i++, x++)
{
WebResource = remoteUrl[i] + fájlNév[x];
letöltött++;
// MessageBox.Show(letöltött.ToString());
jelenlegiLetöltés.Text = fájlNév[x];
myWebClient.DownloadFile(WebResource,fájlNév[x]);
double állás = letöltött / össz * 100;
progressBar.Value = Convert.ToInt32(állás);
}
所以,问题是,程序只下载第一个文件(4次),其他3个文件只是第一个文件的重命名版本。 有人能说出来是什么问题吗?
谢谢, TOMCO
这是显示错误的图像:(如您所见,所有文件大小都等于第一个文件的大小)
答案 0 :(得分:0)
我只是尝试将这些代码复制到LINQPad中并运行它(进行一些小的改动,主要是重命名变量以便我可以轻松读取它们),并注意到下载的“文件”是HTML转储......那是你所看到的吗?
从第一眼看,您使用的简单URI似乎不足以用作下载链接 - 该HTML blob中的链接具有额外的查询字符串参数,如哈希等。
HTML中的示例链接:
https://dl.dropbox.com/s/62tt9w194xefk7t/alut.dll?token_hash=AAHQmybYdR44TRrS9bWQWV7jlZBzZQ-mmmjNy1Kv_qR4cg&dl=1