FileRead Event
Fires when a client wants to read from an open file.
Syntax
type TFileReadEvent = procedure FileRead(Sender: TObject; ConnectionId: Integer; const User: String; const Handle: String; FileOffset: Int64; Length: Integer;var StatusCode: Integer) of object;property OnFileRead: TFileReadEvent read FOnFileRead write FOnFileRead;
Remarks
The Handle parameter identifies an open file on the server. FileOffset specifies the position from which to read data. Length specifies how much data to read. The data read should be set to through SFTPConnectionFileData
When processing a read request, the server should attempt to read at most Length bytes, but it is OK to read less than Length bytes as well, if no more data is available.
When there is no more data to be read from the file, set StatusCode to SSH_FXS_EOF.
Valid status codes are:
- SSH_FX_OK 0
- SSH_FX_EOF 1
- SSH_FX_NO_SUCH_FILE 2
- SSH_FX_PERMISSION_DENIED 3
- SSH_FX_FAILURE 4
- SSH_FX_BAD_MESSAGE 5
- SSH_FX_NO_CONNECTION 6
- SSH_FX_CONNECTION_LOST 7
- SSH_FX_OP_UNSUPPORTED 8
- SSH_FX_INVALID_HANDLE 9
- SSH_FX_NO_SUCH_PATH 10
- SSH_FX_FILE_ALREADY_EXISTS 11
- SSH_FX_WRITE_PROTECT 12
- SSH_FX_NO_MEDIA 13
- SSH_FX_NO_SPACE_ON_FILESYSTEM 14
- SSH_FX_QUOTA_EXCEEDED 15
- SSH_FX_UNKNOWN_PRINCIPAL 16
- SSH_FX_LOCK_CONFLICT 17
- SSH_FX_DIR_NOT_EMPTY 18
- SSH_FX_NOT_A_DIRECTORY 19
- SSH_FX_INVALID_FILENAME 20
- SSH_FX_LINK_LOOP 21
- SSH_FX_CANNOT_DELETE 22
- SSH_FX_INVALID_PARAMETER 23
- SSH_FX_FILE_IS_A_DIRECTORY 24
- SSH_FX_BYTE_RANGE_LOCK_CONFLICT 25
- SSH_FX_BYTE_RANGE_LOCK_REFUSED 26
- SSH_FX_DELETE_PENDING 27
- SSH_FX_FILE_CORRUPT 28
- SSH_FX_OWNER_INVALID 29
- SSH_FX_GROUP_INVALID 30
- SSH_FX_NO_MATCHING_BYTE_RANGE_LOCK 31