2012-10-13 118 views
1

我試圖下載文件列表,但並不確定如何繼續。 正如話題所述,我正在使用DropNet,並且這是我嘗試下載文件的過程:使用DropNet從Dropbox下載文件

獲取我應用程序專用文件夾中的所有文件的列表,並將它們作爲字符串存儲在列表中。

然後嘗試以下操作:

foreach (string file in files) 
{ 
    _client.GetFileAsync("/" +file, 
     (response) => 
     { 
      using(FileStream fs = new FileStream(path +file +".gttmp", FileMode.Create)) 
      { 
       for(int i = 0; i < response.RawBytes.Length; i++) 
       { 
        fs.WriteByte(response.RawBytes[i]); 
       } 
       fs.Seek(0, SeekOrigin.Begin); 
       for(int i = 0; i < response.RawBytes.Length; i++) 
       { 
        if(response.RawBytes[i] != fs.ReadByte()) 
        { 
         MessageBox.Show("Error writing data for " +file); 
         return; 
        } 
       } 
      } 
     }, 
     (error) => 
     { 
      MessageBox.Show("Could not download file " +file, "Error!"); 
     }); 
} 

不幸的是它似乎並沒有在所有的工作。 任何人使用DropNet,可以建議我的東西,將工作?

回答

1

二手synronous方法代替:

foreach (string file in files) 
{ 
    var fileBytes = _client.GetFile("/" + file); 
    using (FileStream fs = new FileStream(path +file + ".gttmp", FileMode.Create)) 
    { 
     for (int i = 0; i < fileBytes.Length; i++) 
     { 
      fs.WriteByte(fileBytes[i]); 
     } 
     fs.Seek(0, SeekOrigin.Begin); 
     for (int i = 0; i < fileBytes.Length; i++) 
     { 
      if (fileBytes[i] != fs.ReadByte()) 
      { 
       MessageBox.Show("Error writing data for " + file); 
       break; 
      } 
     } 
    } 
} 
1

你的代碼來下載文件異步工作得很好,我想在下面的方式前進而不會出現錯誤。

client.GetFileAsync("/novemberrain.mp3", 
       (response) => 
       { 
        using (FileStream fs = new FileStream(@"D:\novemberrain.mp3", FileMode.Create)) 
        { 
         for (int i = 0; i < response.RawBytes.Length; i++) 
         { 
          fs.WriteByte(response.RawBytes[i]); 
         } 
        } 
        MessageBox.Show("file downloaded"); 
       }, 
       (error) => 
       { 
        MessageBox.Show("error downloading"); 
       });