struct FlowSshC_ClientSftpChannel {};

FlowSshC_ClientSftpChannel* __cdecl FlowSshC_ClientSftpChannel_Create(FlowSshC_Client* client);


class ClientSftpChannel : public MainBase (.. public RefCountable, public NoCopy)
  ClientSftpChannel(RefPtrConst<Client> const& client);


public class ClientSftpChannel : IDisposable, MainBase
  public ClientSftpChannel(ClientBase client);


Creation, Destruction

  • Create - Create a new sftp-channel for the client.
  • [C] AddRef - Increment reference count.
  • [C] Release - Decrement reference count.


  • Close - Close the channel.
  • Download - Download a file.
  • List - List files and directories.
  • MkDir - Create a directory.
  • Open - Open the channel.
  • RealPath - Convert a relative path to an absolute path.
  • Remove - Delete a file.
  • Rename - Rename or move a file or a directory.
  • RmDir - Delete a directory.
  • SetStat - Modify file or directory attributes.
  • Stat - Retrieve file or directory attributes.
  • Upload - Upload a file.

[C] Handler Registration

[C++/.NET] Accessors

[C++/.NET] Overrides and Events

[.NET] Disposing

  • IsDisposed - Is the object disposed?
  • Dispose - Release all resources used by the object. Also initiates a close request.


This interface manages the SFTP subsystem. If you want to change the attributes of a remote file, upload or download a file, delete a remote file, modify its attributes, .., you will end up using a sftp-channel. In FlowSshC, sftp-channels are represented by an opaque FlowSshC_ClientSftpChannel structure. In FlowSshCpp/Net they are managed by the ClientSftpChannel class. Handlers are called only for active channels. A channel is said to be active if it is either open or opening.

A channel can be created even if the associated client is not yet connected. Before an open request is send, the client must be connected though.

Remote SFTP file names. With SFTP the following rules apply to file names on the remote server:

  • "." represents the current directory.
  • ".." represents the parent directory.
  • "/" represents a directory separator.
  • File names starting with an "/" are absolute names. In other words, they are relative to the root of the file system.
  • File names starting with any other character are relative to the user's home directory.

You may call [ClientSftpChannel]RealPath to convert a relative path to an absolute path with a leading slash ("/").

Local SFTP file names. See the Windows "File Name Conventions" in MSDN.