gpt4 book ai didi

c# - 如何使用 SharpSSH 或 SSH.NET 库在 SFTP 服务器上附加文本文件

转载 作者:行者123 更新时间:2023-11-30 23:25:17 25 4
gpt4 key购买 nike

我使用 Tamir.SharpSSH 库来进行 SFTP 操作。我可以从客户端上传文件,删除或列出位于 SFTP 服务器目录中的文件。

但我找不到如何附加文本文件。我不想覆盖或删除现有的并上传新的。我在该 SFTP 服务器上有一个日志文件。我必须从客户端向该文件添加新行。

我刚刚在互联网上搜索并查看了代码中的不同功能,但没有尝试执行任何操作,因为直到现在我找不到任何东西。

提前致谢

编辑

由于@Martin Prikryl 的建议,我决定使用 Renci.SshNet 库。我也用那个库尝试了上述操作,我发现它运行良好。使用该库将文本附加到文本文件也非常简单。我在这里分享一个小例子:

using System
using Renci.SshNet;

namespace SFTPConnectSample
{
class Program
{
static void Main(string[] args)
{
AppendText(@"/targetFolder/targetFile.txt");
}

private static void AppendText(string targetFilePath)
{
int portNumber = 22;

using (SftpClient sftp = new SftpClient("myHostName", portNumber, "sftpUser", "sftpPassword"))
{
sftp.ConnectionInfo.Timeout = new TimeSpan(0, 0, 30);
sftp.Connect();
sftp.AppendAllText(targetFilePath, "\r\nThis is a new line for target text file.");
}
}
}
}

最佳答案

首先,不要使用 SharpSSH。这是一个废弃的项目,多年未更新。

您可以使用 SSH.NET library相反。

它的 SftpClient 类有几个方法可以使用:

public StreamWriter AppendText(string path)
public void AppendAllText(string path, string contents)
public void AppendAllLines(string path, IEnumerable<string> contents)

如果出于某种原因必须使用 SharpSSH,请使用:

SftpChannel.get(fromFilePath, toFilePath, monitor, ChannelSftp.APPEND);

关于c# - 如何使用 SharpSSH 或 SSH.NET 库在 SFTP 服务器上附加文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37389034/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com