【发布时间】:2021-11-02 05:24:25
【问题描述】:
我正在尝试将文本添加到 FTP 服务器中的文本文件,但它会覆盖它而不是附加,如何解决这个问题?
SessionOptions sessionOptions = new SessionOptions
{
Protocol = Protocol.Ftp,
HostName = "www.site.com",
UserName = "name",
Password = "pass",
FtpSecure = FtpSecure.Explicit,
TlsHostCertificateFingerprint = "what ever that is",
};
using (Session session = new Session())
{
session.Open(sessionOptions);
TransferOptions options = new TransferOptions();
options.TransferMode = TransferMode.Ascii;
options.OverwriteMode = OverwriteMode.Append;
TransferOperationResult transferResult;
transferResult = session.PutFiles(@"E:\Up\log.txt", "/log.txt", false, options);
transferResult.Check();
foreach (TransferEventArgs transfer in transferResult.Transfers)
{
Console.WriteLine("Upload of {0} succeeded", transfer.FileName);
}
}
在这里找到类似的东西,但没有解决方案: https://winscp.net/forum/viewtopic.php?t=25031
我真的不想下载文件,附加到它,然后上传它,下面的代码有效,但我的凭据对 WireShark 是可见的:
byte[] data = Encoding.UTF8.GetBytes(@"Hello World.");
Uri target = new Uri("ftp://site.com/test.txt");
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(target);
request.Method = WebRequestMethods.Ftp.AppendFile;
request.ContentLength = data.Length;
request.Credentials = new NetworkCredential("name", "pass");
using (Stream requestStream = request.GetRequestStream())
requestStream.Write(data, 0, data.Length);
【问题讨论】:
标签: c# ftp winscp-net