我需要使用 C# 中的 WinSCP .NET 程序集从 SFTP 位置读取文件。 我能够将文件从 SFTP 位置下载到本地路径并读取它。 但有没有办法直接读取文件内容而不需要下载到本地路径呢?
下面是用于下载的代码。但我发现没有选项可以直接在 WinSCP 中读取文件内容...比如使用响应、流等...
TransferOptions objTransferoptions = new Transferoptions()
objTransferoptions.transfermode = Automatic
Session objsession = new Session()
objsession.Open()
objsession.GetFiles(remotepath, localpath, false,objTransferoptions)
有人可以告诉我是否可以直接从 SFTP 位置读取文件内容吗?提前致谢!
编辑:
延伸一下上面的问题。谁能告诉我是否可以在 SFTP 远程位置之间复制文件(从同一 SFTP 服务器中的远程位置 1 到远程位置 2)。
请注意:我需要复制文件,而不是移动。
最佳答案
使用Session.GetFile
将远程文件下载到内存。
using (Session session = new Session())
{
// Connect
session.Open(sessionOptions);
using (var stream = session.GetFile(remotePath))
{
// now process the data in "stream" the same way you would
// for example process a stream returned by System.IO.File.Open()
}
}
关于c# - 使用 WinSCP 从 SFTP 位置读取文件内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36576117/