2015-07-12 63 views
0

我使用SSH.NET(Renci.SshNet)庫來檢索SQL文件的內容,但它似乎無法處理大型文件,因爲我的電腦崩潰當我試圖在500MB文件上使用以下代碼時。在C#中使用SSH.net從遠程文件獲取文件內容

using (SshCommand command = client.CreateCommand("cat " + filename)) 
           { 
            filecontent = command.Execute(); 
            SaveFileDialog theDialog = new SaveFileDialog(); 
            theDialog.Title = "Backup - " + filename; 
            theDialog.Filter = "SQL files|*.sql"; 
            theDialog.FileName = filename; 
            if (theDialog.ShowDialog() == true) 
            { 
             File.WriteAllText(theDialog.FileName, filecontent); 
            } 

           } 

然後我試圖使用SFTP下載文件,但出於某種原因,所以我試圖複製大文件時,我目前卡住我不能達到httpd.private文件夾。

如何使用類似的技術將大文件傳輸到我的C#應用​​程序進行保存?我相信SFTP是一個更好的解決方案,但我無法到達sql生成的文件夾。

SQL文件是通過mysqldump命令生成的。

謝謝!

+1

SFTP/SCP是正確的答案。在ServerFault上重新發布任何妨礙您使用SFTP的內容。 – Mitch

+0

嗨米奇。我設法解決這個問題。我必須迭代文件夾並通過比較文件名來檢查文件是否在目錄中,然後打開一個流並使用sftpClient.DownloadFile()下載文件。 –

回答

0

我不得不實施使用SftpClient構建到SSH.net中,並使用SftpClient.ListDirectory()迭代文件夾,並將文件名與我正在查找的文件進行比較。然後我打開一個流並使用SftpClient.DownloadFile()下載文件。