2013-02-18 67 views
0

我的代码有问题。我想下载一些文件(目前我正在做一个修补程序),但有很多文件,我不想为它们创建一个字符串。C#下载程序(阵列)

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

我能做些什么?哪里不对?

+0

变种名称是'fájlNév'? – 2013-02-18 20:50:57

+3

什么例外? – wRAR 2013-02-18 20:51:25

+2

你的代码抛出了什么样的异常? – 2013-02-18 20:51:38

回答

4

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

退房MSDN

public void DownloadFile(
    string address, 
    string fileName 
) 

DownloadFile期待文件名,而不是一个文件夹。

尝试改用:

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

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


另外,Xantham指出循环会导致数组超出界限的异常。

+0

谢谢你,但仍然无法正常工作。没有找到404。我测试了链接,他们正在工作。 – werck 2013-02-19 15:02:36

+0

您是否需要通过认证才能使用Dropbox? 尝试使用另一个链接,而不是Dropbox之一。看看它是否有效。 – Ofiris 2013-02-19 15:27:55

+0

你还写信给c:\? – Ofiris 2013-02-19 15:59:24

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)的数组。

+0

+1,我应该提到它 – Ofiris 2013-02-19 06:25:22

+0

是,我有这个问题,但现在我只有404错误。 – werck 2013-02-19 15:04:43