C#下载程序(数组)

本文关键字:数组 程序 下载 | 更新日期: 2023-09-27 17:59:52

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

我想将链接存储在一个数组中。但是调试器说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]);
            }
        }

我能做什么?怎么了?

C#下载程序(数组)

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

查看MSDN

public void DownloadFile(
    string address,
    string fileName
)

DownloadFile需要文件名,而不是文件夹。

尝试更改为:

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

此外,直接写入根文件夹可能会导致安全异常,写入特定文件夹可能是一种很好的做法。


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

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]时,它们也会导致数组越界异常。