<PackageReference Include="SSH.NET" Version="2016.0.0" />

ISftpSession

using Renci.SshNet.Sftp.Responses; using System; using System.Collections.Generic; using System.Threading; namespace Renci.SshNet.Sftp { internal interface ISftpSession : ISubsystemSession, IDisposable { uint ProtocolVersion { get; } string WorkingDirectory { get; } void ChangeDirectory(string path); string GetCanonicalPath(string path); SftpFileAttributes RequestFStat(byte[] handle); SftpFileAttributes RequestLStat(string path); void RequestMkDir(string path); byte[] RequestOpen(string path, Flags flags, bool nullOnError = false); byte[] RequestOpenDir(string path, bool nullOnError = false); void RequestPosixRename(string oldPath, string newPath); byte[] RequestRead(byte[] handle, ulong offset, uint length); KeyValuePair<string, SftpFileAttributes>[] RequestReadDir(byte[] handle); void RequestRemove(string path); void RequestRename(string oldPath, string newPath); void RequestRmDir(string path); void RequestSetStat(string path, SftpFileAttributes attributes); SftpFileSytemInformation RequestStatVfs(string path, bool nullOnError = false); void RequestSymLink(string linkpath, string targetpath); void RequestFSetStat(byte[] handle, SftpFileAttributes attributes); void RequestWrite(byte[] handle, ulong offset, byte[] data, int length, AutoResetEvent wait, Action<SftpStatusResponse> writeCompleted = null); void RequestClose(byte[] handle); uint CalculateOptimalReadLength(uint bufferSize); uint CalculateOptimalWriteLength(uint bufferSize, byte[] handle); } }