0

我的代码有问题。我想下载一些文件(我目前正在做一个补丁程序),但是文件太多了,我不想为所有文件创建一个字符串。

我想将链接存储在数组中。但是调试器说WebClient. 这是我的代码(fájlNév手段fileNamefá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]);
            }
        }

我能做些什么?怎么了?

4

2 回答 2

4

很多评论,但没有一个提到这一点,

查看MSDN

public void DownloadFile(
    string address,
    string fileName
)

DownloadFile期望文件名而不是文件夹。

尝试更改为:

myWebClient.DownloadFile(WebResource,"C://"  + fájlNév[x])

此外,直接写入根文件夹可能会导致安全异常,可能是写入特定文件夹的好习惯。


此外,Xantham 指出循环会导致数组越界异常。

于 2013-02-18T21:03:57.943 回答
2

Ofiris 给出的主要答案是文件名是必要的,但是还有一个更普通的问题,我认为应该引起注意。

对 for 循环的初始调用:

for(int i = 0; i <= remoteUrl.Length; i++)

for(int x = 0; x <= fájlNév.Length; x++)

当它尝试查看只有 2 个对象(0 和 1)的数组中的 remoteUrl[2] 时,它们也会导致数组越界异常。

于 2013-02-18T21:19:09.513 回答