我的代码有问题。我想下载一些文件(我现在正在做一个修补程序),但是有很多文件,我不想为它们创建一个字符串。
我想将链接存储在一个数组中。但是调试器说WebClient
中有例外。这是我的代码(fájlNév
表示fileName
,fájlNévAlap
表示baseFileName
):更新代码:
<!-- language: lang-c# -->
WebClient myWebClient = new WebClient();
string[] remoteUrl = new string[2] { "https://www.dropbox.com/s/62tt9w194xefk7t/", " https://www.dropbox.com/s/spni307vmk4zng9/" };
string[] fájlNév = new string[2] { "alut.dll", "DevIL.dll" };
string fájlNévAlap = "BlackBox.dll", WebResource = null;
for(int i = 0; i < remoteUrl.Length; i++) {
for(int x = 0; x < fájlNév.Length; x++) {
WebResource = remoteUrl[i] + fájlNév[x];
MessageBox.Show(WebResource);
myWebClient.DownloadFile(WebResource,fájlNév[x]);
}
}
我该怎么办?有什么问题?
答案 0 :(得分:4)
许多评论但没有人提到这一点,
结帐MSDN
public void DownloadFile(
string address,
string fileName
)
DownloadFile
期望文件名而不是文件夹。
尝试更改为:
myWebClient.DownloadFile(WebResource,"C://" + fájlNév[x])
此外,直接写入根文件夹可能会导致安全性异常,写入特定文件夹可能是一种很好的做法。
此外,Xantham注意到循环将导致数组超出绑定异常。
答案 1 :(得分:2)
Ofiris给出了一个主要答案,即文件名是必要的,但是我认为应该引起注意,这是一个更普通的问题。
对for循环的初始调用:
for(int i = 0; i <= remoteUrl.Length; i++)
和
for(int x = 0; x <= fájlNév.Length; x++)
它们将导致数组超出范围异常,当它将尝试查看remoteUrl [2]时,只有2个对象(0和1)的数组。