SFtpFile C Reference Documentation

SFtpFile

Current Version: 11.5.0

Chilkat.SFtpFile

Inspect metadata for a file, directory, symlink, or special item in an SFTP listing.

Chilkat.SFtpFile represents one entry returned from an SFTP directory listing. It exposes the entry name, file type, size, ownership, permissions, timestamps, and server-provided attribute flags such as hidden, read-only, archive, immutable, encrypted, compressed, sparse, append-only, system, and synchronization status. It is typically used together with Chilkat.SFtpDir when iterating a remote directory and deciding how each entry should be displayed, filtered, downloaded, skipped, or processed.

Name and type

Read Filename and FileType, or use convenience flags such as IsRegular, IsDirectory, and IsSymLink.

File sizes

Access the entry size as a 32-bit integer, 64-bit integer, or decimal string using Size32, Size64, or SizeStr.

Timestamps

Inspect creation, last-access, and last-modified times as date/time values or RFC822-formatted strings when supported by the server.

Ownership

Read numeric user and group IDs, and when the server supports it, textual owner and group names.

Permissions

Inspect the POSIX-style permissions bit mask for read, write, execute, set-user-ID, set-group-ID, and sticky-bit information.

Extended attributes

Check server-provided flags such as hidden, read-only, archive, immutable, encrypted, compressed, sparse, append-only, system, and sync.

Common pattern: Retrieve a directory listing with Chilkat.SFtp, iterate its Chilkat.SFtpDir entries, and populate a Chilkat.SFtpFile object for each item. Use the file type, timestamps, size, permissions, and attribute flags to decide whether the entry is a regular file, directory, symlink, or special item and how the application should handle it.
Server-version note: Some metadata is only available from newer SFTP protocol versions. For example, textual owner/group information and creation time require SFTP v4 or later, while many extended attribute flags such as read-only, archive, immutable, compressed, encrypted, sparse, append-only, and system require SFTP v6 or later.

Create/Dispose

HCkSFtpFile instance = CkSFtpFile_Create();
// ...
CkSFtpFile_Dispose(instance);
HCkSFtpFile CkSFtpFile_Create(void);

Creates an instance of the HCkSFtpFile object and returns a handle ("void *" pointer). The handle is passed in the 1st argument for the functions listed on this page.

void CkSFtpFile_Dispose(HCkSFtpFile handle);

Objects created by calling CkSFtpFile_Create must be freed by calling this method. A memory leak occurs if a handle is not disposed by calling this function. Also, any handle returned by a Chilkat "C" function must also be freed by the application by calling the appropriate Dispose method, such as CkSFtpFile_Dispose.

Properties

CreateTimeStr
void CkSFtpFile_getCreateTimeStr(HCkSFtpFile cHandle, HCkString retval);
const char *CkSFtpFile_createTimeStr(HCkSFtpFile cHandle);

Returns the file creation date and time as an RFC 822-formatted string, such as Fri, 21 Nov 1997 09:55:06 -0600.

Server requirement: Creation-time metadata is available only when the server supports SFTP version 4 or later and provides this attribute.

top
DebugLogFilePath
void CkSFtpFile_getDebugLogFilePath(HCkSFtpFile cHandle, HCkString retval);
void CkSFtpFile_putDebugLogFilePath(HCkSFtpFile cHandle, const char *newVal);
const char *CkSFtpFile_debugLogFilePath(HCkSFtpFile cHandle);

If set to a file path, this property logs the LastErrorText of each Chilkat method or property call to the specified file. This logging helps identify the context and history of Chilkat calls leading up to any crash or hang, aiding in debugging.

Enabling the VerboseLogging property provides more detailed information. This property is mainly used for debugging rare instances where a Chilkat method call causes a hang or crash, which should generally not happen.

Possible causes of hangs include:

  • A timeout property set to 0, indicating an infinite timeout.
  • A hang occurring within an event callback in the application code.
  • An internal bug in the Chilkat code causing the hang.

More Information and Examples
top
Filename
void CkSFtpFile_getFilename(HCkSFtpFile cHandle, HCkString retval);
const char *CkSFtpFile_filename(HCkSFtpFile cHandle);

Returns the name of the directory entry. Depending on the entry type, this may be a regular filename, directory name, symbolic-link name, or the name of another special filesystem object.

top
FileType
void CkSFtpFile_getFileType(HCkSFtpFile cHandle, HCkString retval);
const char *CkSFtpFile_fileType(HCkSFtpFile cHandle);

Identifies the type of directory entry. The returned value is one of the following:

Value Meaning
regularA regular file.
directoryA directory.
symLinkA symbolic link.
specialA special file whose more specific type is not reported.
unknownThe type is unknown or was not provided by the server.
socketA socket.
charDeviceA character device.
blockDeviceA block device.
fifoA FIFO (named pipe).

The convenience properties IsRegular, IsDirectory, and IsSymLink may be used for the most common entry types.

top
Gid
int CkSFtpFile_getGid(HCkSFtpFile cHandle);

Returns the numeric group ID associated with the file.

top
Group
void CkSFtpFile_getGroup(HCkSFtpFile cHandle, HCkString retval);
const char *CkSFtpFile_group(HCkSFtpFile cHandle);

Returns the textual group name associated with the file.

Server requirement: This attribute is available only when the server supports SFTP version 4 or later and provides owner/group names.

top
IsAppendOnly
BOOL CkSFtpFile_getIsAppendOnly(HCkSFtpFile cHandle);

Returns TRUE if the server marks the file as append-only. New data may be added only at the end of the file; existing data cannot be overwritten through normal file writes.

Server requirement: This attribute is defined for SFTP version 6 or later.

top
IsArchive
BOOL CkSFtpFile_getIsArchive(HCkSFtpFile cHandle);

Returns TRUE if the server marks the file for inclusion in backup or archive operations.

Server requirement: This attribute is defined for SFTP version 6 or later.

top
IsCaseInsensitive
BOOL CkSFtpFile_getIsCaseInsensitive(HCkSFtpFile cHandle);

Applies to directories. Returns TRUE when names within the directory should be compared without regard to letter case.

Server requirement: This attribute is defined for SFTP version 6 or later.

top
IsCompressed
BOOL CkSFtpFile_getIsCompressed(HCkSFtpFile cHandle);

Returns TRUE if the file is stored using transparent filesystem-level compression on the server.

This attribute describes how the server stores the file. It does not change the file bytes transferred through SFTP.

Server requirement: This attribute is defined for SFTP version 6 or later.

top
IsDirectory
BOOL CkSFtpFile_getIsDirectory(HCkSFtpFile cHandle);

Returns TRUE if the directory entry is a directory.

top
IsEncrypted
BOOL CkSFtpFile_getIsEncrypted(HCkSFtpFile cHandle);

Returns TRUE if the file is stored using transparent filesystem-level encryption on the server.

This attribute describes storage at rest. It does not alter the file bytes returned by read operations or accepted by write operations.

Server requirement: This attribute is defined for SFTP version 6 or later.

top
IsHidden
BOOL CkSFtpFile_getIsHidden(HCkSFtpFile cHandle);

Returns TRUE if the server marks the entry as hidden. Hidden entries are normally omitted from user-facing displays unless the user specifically requests them.

top
IsImmutable
BOOL CkSFtpFile_getIsImmutable(HCkSFtpFile cHandle);

Returns TRUE if the server marks the file as immutable. An immutable file cannot normally be deleted, renamed, modified, or used as the target of a new hard link.

Immutability is generally stronger than read-only status, the ordinary permission mask, or an access-control list. On many systems, only a privileged administrator can set or clear this attribute.

Server requirement: This attribute is defined for SFTP version 6 or later.

top
IsReadOnly
BOOL CkSFtpFile_getIsReadOnly(HCkSFtpFile cHandle);

Returns TRUE if the server marks the file as read-only.

Server requirement: This attribute is defined for SFTP version 6 or later.

top
IsRegular
BOOL CkSFtpFile_getIsRegular(HCkSFtpFile cHandle);

Returns TRUE if the directory entry is a regular file rather than a directory, symbolic link, device, socket, FIFO, or other special type.

top
IsSparse
BOOL CkSFtpFile_getIsSparse(HCkSFtpFile cHandle);

Returns TRUE if the server identifies the file as sparse. A sparse file can contain unwritten regions, often called holes, that read as zero bytes without consuming equivalent physical disk space.

For example, writing data at an offset of 10 MB may leave the region between the previous end of file and that offset unallocated on disk.

Some servers store all files sparsely and may always set this flag. Other servers cannot reliably determine whether a file is sparse, so a file may be sparse even when this property is FALSE.

Server requirement: This attribute is defined for SFTP version 6 or later.

top
IsSymLink
BOOL CkSFtpFile_getIsSymLink(HCkSFtpFile cHandle);

Returns TRUE if the directory entry is a symbolic link.

top
IsSync
BOOL CkSFtpFile_getIsSync(HCkSFtpFile cHandle);

Returns TRUE if modifications to the file are committed synchronously to server storage.

Server requirement: This attribute is defined for SFTP version 6 or later.

top
IsSystem
BOOL CkSFtpFile_getIsSystem(HCkSFtpFile cHandle);

Returns TRUE if the server marks the file as part of the operating system.

Server requirement: This attribute is defined for SFTP version 6 or later.

top
LastAccessTimeStr
void CkSFtpFile_getLastAccessTimeStr(HCkSFtpFile cHandle, HCkString retval);
const char *CkSFtpFile_lastAccessTimeStr(HCkSFtpFile cHandle);

Returns the file's last-access date and time as an RFC 822-formatted string, such as Fri, 21 Nov 1997 09:55:06 -0600.

top
LastErrorHtml
void CkSFtpFile_getLastErrorHtml(HCkSFtpFile cHandle, HCkString retval);
const char *CkSFtpFile_lastErrorHtml(HCkSFtpFile cHandle);

Provides HTML-formatted information about the last called method or property. If a method call fails or behaves unexpectedly, check this property for details. Note that information is available regardless of the method call's success.

top
LastErrorText
void CkSFtpFile_getLastErrorText(HCkSFtpFile cHandle, HCkString retval);
const char *CkSFtpFile_lastErrorText(HCkSFtpFile cHandle);

Provides plain text information about the last called method or property. If a method call fails or behaves unexpectedly, check this property for details. Note that information is available regardless of the method call's success.

top
LastErrorXml
void CkSFtpFile_getLastErrorXml(HCkSFtpFile cHandle, HCkString retval);
const char *CkSFtpFile_lastErrorXml(HCkSFtpFile cHandle);

Provides XML-formatted information about the last called method or property. If a method call fails or behaves unexpectedly, check this property for details. Note that information is available regardless of the method call's success.

top
LastMethodSuccess
BOOL CkSFtpFile_getLastMethodSuccess(HCkSFtpFile cHandle);
void CkSFtpFile_putLastMethodSuccess(HCkSFtpFile cHandle, BOOL newVal);

Indicates the success or failure of the most recent method call: TRUE means success, FALSE means failure. This property remains unchanged by property setters or getters. This method is present to address challenges in checking for null or Nothing returns in certain programming languages. Note: This property does not apply to methods that return integer values or to boolean-returning methods where the boolean does not indicate success or failure.

top
LastModifiedTimeStr
void CkSFtpFile_getLastModifiedTimeStr(HCkSFtpFile cHandle, HCkString retval);
const char *CkSFtpFile_lastModifiedTimeStr(HCkSFtpFile cHandle);

Returns the file's last-modified date and time as an RFC 822-formatted string, such as Fri, 21 Nov 1997 09:55:06 -0600.

Use LastModifiedTime when a native date/time value is more convenient.

top
Owner
void CkSFtpFile_getOwner(HCkSFtpFile cHandle, HCkString retval);
const char *CkSFtpFile_owner(HCkSFtpFile cHandle);

Returns the textual owner name associated with the file.

Server requirement: This attribute is available only when the server supports SFTP version 4 or later and provides owner/group names.

top
Permissions
int CkSFtpFile_getPermissions(HCkSFtpFile cHandle);

Returns the POSIX-style file-permission bit mask. The values correspond to the permission and special-mode bits in the POSIX st_mode field.

Symbol Octal value Meaning
S_IRUSR0400Owner read
S_IWUSR0200Owner write
S_IXUSR0100Owner execute
S_IRGRP0040Group read
S_IWGRP0020Group write
S_IXGRP0010Group execute
S_IROTH0004Others read
S_IWOTH0002Others write
S_IXOTH0001Others execute
S_ISUID4000Set-user-ID
S_ISGID2000Set-group-ID
S_ISVTX1000Sticky bit

Use bitwise AND operations to test individual permission bits.

top
Size32
int CkSFtpFile_getSize32(HCkSFtpFile cHandle);

Returns the file size in bytes as a 32-bit integer. Returns -1 when the size cannot be represented by a 32-bit integer. Use Size64 or SizeStr for larger values.

top
Size64
__int64 CkSFtpFile_getSize64(HCkSFtpFile cHandle);

Returns the file size in bytes as a 64-bit integer.

top
SizeStr
void CkSFtpFile_getSizeStr(HCkSFtpFile cHandle, HCkString retval);
const char *CkSFtpFile_sizeStr(HCkSFtpFile cHandle);

Returns the file size in bytes as a base-10 string. This is the string representation of Size64 and is useful in environments where a 64-bit integer is inconvenient or unavailable.

top
Uid
int CkSFtpFile_getUid(HCkSFtpFile cHandle);

Returns the numeric user ID associated with the file.

top
Utf8
BOOL CkSFtpFile_getUtf8(HCkSFtpFile cHandle);
void CkSFtpFile_putUtf8(HCkSFtpFile cHandle, BOOL newVal);

When set to TRUE, all const char * arguments and return values are interpreted as UTF-8 strings. When set to FALSE, they are interpreted as ANSI strings.

In Chilkat v11.0.0 and later, the default value is TRUE. Before v11.0.0, it was FALSE.

top
VerboseLogging
BOOL CkSFtpFile_getVerboseLogging(HCkSFtpFile cHandle);
void CkSFtpFile_putVerboseLogging(HCkSFtpFile cHandle, BOOL newVal);

If set to TRUE, then the contents of LastErrorText (or LastErrorXml, or LastErrorHtml) may contain more verbose information. The default value is FALSE. Verbose logging should only be used for debugging. The potentially large quantity of logged information may adversely affect peformance.

top
Version
void CkSFtpFile_getVersion(HCkSFtpFile cHandle, HCkString retval);
const char *CkSFtpFile_version(HCkSFtpFile cHandle);

Version of the component/library, such as "10.1.0"

More Information and Examples
top

Methods

Deprecated

GetCreateDt
HCkDateTime CkSFtpFile_GetCreateDt(HCkSFtpFile cHandle);
This method is deprecated.

Deprecated. Use the CreateTimeStr property instead.

Returns the file creation date and time in UTC as a CkDateTime object.

Server requirement: Creation-time metadata is available only when the server supports SFTP version 4 or later and provides this attribute.

Returns NULL on failure

top
GetLastAccessDt
HCkDateTime CkSFtpFile_GetLastAccessDt(HCkSFtpFile cHandle);
This method is deprecated.

Deprecated. Use the LastAccessTimeStr property instead.

Returns the file's last-access date and time in UTC as a CkDateTime object.

Returns NULL on failure

top
GetLastModifiedDt
HCkDateTime CkSFtpFile_GetLastModifiedDt(HCkSFtpFile cHandle);
This method is deprecated.

Deprecated. Use the LastModifiedTimeStr property instead.

Returns the file's last-modified date and time in UTC as a CkDateTime object.

Returns NULL on failure

More Information and Examples
top