我需要使用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远程位置之间复制文件(从远程位置1到同一SFTP服务器中的远程位置2)。
请注意:我需要复制文件,而不是移动。
答案 0 :(得分:1)
WinSCP .NET assembly不支持将远程文件内容“下载”到内存中。
您所能做的就是download the file到本地临时位置并从那里读取内存。
using (Session session = new Session())
{
// Connect
session.Open(sessionOptions);
// Download to a temporary folder
string localPath = Path.GetTempFileName();
session.GetFiles(remotePath, localPath).Check();
// Read the file contents
byte[] contents = File.ReadAllBytes(localPath);
// Delete the temporary file
File.Delete(localPath);
}