在C#中使用SSH.net从远程文件获取文件内容
我正在使用SSH.NET(Renci.SshNet)库来检索SQL文件的内容,但它似乎无法处理大型文件,因为当我试图在500MB的文件上使用以下代码时,我的计算机崩溃了在C#中使用SSH.net从远程文件获取文件内容,c#,ssh,copy,mysqldump,ssh.net,C#,Ssh,Copy,Mysqldump,Ssh.net,我正在使用SSH.NET(Renci.SshNet)库来检索SQL文件的内容,但它似乎无法处理大型文件,因为当我试图在500MB的文件上使用以下代码时,我的计算机崩溃了 using (SshCommand command = client.CreateCommand("cat " + filename)) { filecontent = command.Exec
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命令生成的
谢谢 我必须使用构建到SSH.net中的SftpClient,并使用SftpClient.ListDirectory()遍历文件夹,并将文件名与我要查找的文件进行比较。然后我打开了一个流,并使用SftpClient.DownloadFile()下载了该文件。SFTP/SCP是正确的答案。在ServerFault上重新发布阻止您使用SFTP.Hi Mitch的内容。我设法解决了这个问题。我必须遍历文件夹,通过比较文件名来检查文件是否在目录中,然后打开一个流并使用sftpClient.DownloadFile()下载文件