2013-02-18 69 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