在C#中使用SSH.net从远程文件中获取文件内容

时间:2015-07-12 19:49:42

标签: c# ssh copy mysqldump ssh.net

我正在使用SSH.NET(Renci.SshNet)库来检索SQL文件的内容,但是当我尝试在500MB文件上使用以下代码时,我的计算机崩溃似乎无法处理大文件。< / p>

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 个答案:

答案 0 :(得分:0)

我必须使用构建到SSH.net中的SftpClient并使用SftpClient.ListDirectory()迭代文件夹,并将文件名与我正在寻找的文件进行比较。然后我打开了一个流并使用SftpClient.DownloadFile()下载了该文件。