2016-02-09 62 views
0

我對C#沒有任何知識,但我需要創建一個自動下載文件列表的FTP服務器(從最後一個到最先一個),所以我下載了一些FTP服務器的源代碼和我發現的功能最多有一個小問題,我的任務是獲得一個自動下載文件的服務器,但我打開的代碼打開一個窗口來選擇保存文件的位置。在FTP服務器中自動下載文件

我該如何改變它來自動下載文件?

(如果可能的話,解釋throughly如何你的代碼的工作,這將有助於我更好地理解和學習C#)

private void ServerFileListView_DockChanged(object sender, EventArgs e) 
{ 
    foreach (ListViewItem item in ServerFileListView.Items) 
    { 
     item.Selected = true; 
    } 

    byte[] file; 

    Server.Download(MachineInfo.GetJustIP(), ServerFileListView.SelectedItems[0].SubItems[2].Text, out file); 

    SaveFileDialog save = new SaveFileDialog(); 
    save.Title = "It saves the downloaded file."; 
    save.SupportMultiDottedExtensions = false; 
    save.Filter = "*.png|*.png"; 
    save.FileName = ServerFileListView.SelectedItems[0].SubItems[2].Text; 
    if (save.ShowDialog() != System.Windows.Forms.DialogResult.Cancel) 
    { 
     System.IO.File.WriteAllBytes(save.FileName, file); 
     MessageBox.Show(ServerFileListView.SelectedItems[0].SubItems[2].Text +" has been downloaded.", "FTP File Sharing", MessageBoxButtons.OK, MessageBoxIcon.Information); 
    } 
    save.Dispose(); 
} 

如果您想了解更多的細節在評論中問。

(對不起,壞的言論,我不流利英文)

回答

1

您需要刪除SaveFileDialog()是指保存文件的交互。

  • 獲取文件的列表,並把在陣列
  • 和循環(的foreach)的陣列運行下載方法
  • 更好的是,在一個單獨的線程或異步運行的方法,所以它會不會阻塞主線程。

僞:

{run in thread 

    if(ftp is connected) 
    { 
     connect; 
     string listToDownload[] = getListFileFromServer; 
     foreach (var item from listToDownload) 
     {file = getFileFromServer; 
      saveToDisk(file); 
      } 
    } 
} 
+0

完美!通過一些編輯它解決了我的問題! \(^ - ^)/ – ArsonFG

+0

很高興幫助!乾杯。 – WindyHen

相關問題