C#中使用SSH.net从远程文件获取文件内容
Using SSH.net in C# to get file content from a remote file
我正在使用 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 的文件夹。
SQL文件是通过我的sqldump命令生成的。
谢谢!
我不得不使用 SSH.net 中内置的 SftpClient,并使用 SftpClient.ListDirectory() 遍历文件夹,并将文件名与我要查找的文件进行比较。然后我打开一个流并使用 SftpClient.DownloadFile() 下载文件。
我正在使用 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 的文件夹。
SQL文件是通过我的sqldump命令生成的。
谢谢!
我不得不使用 SSH.net 中内置的 SftpClient,并使用 SftpClient.ListDirectory() 遍历文件夹,并将文件名与我要查找的文件进行比较。然后我打开一个流并使用 SftpClient.DownloadFile() 下载文件。