【发布时间】:2015-07-13 04:46:08
【问题描述】:
我正在使用 SSH.NET (Renci.SshNet) 库来检索 SQL 文件的内容,但是当我尝试在 500MB 文件上使用以下代码时,我的计算机崩溃了,它似乎无法处理大文件。
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 的文件夹。
通过mysqldump命令生成SQL文件
谢谢!
【问题讨论】:
-
SFTP/SCP 是正确的答案。使用阻止您使用 SFTP 的任何内容在 ServerFault 上重新发布。
-
嗨,米奇。我设法解决了这个问题。我必须遍历文件夹并通过比较文件名来检查文件是否在目录中,然后打开一个流并使用 sftpClient.DownloadFile() 下载文件
标签: c# ssh copy mysqldump ssh.net