FTPFILESTATUS  
 

This structure is used by the EnumFiles, GetFirstFile and GetNextFile methods to return information about files on the server.

typedef struct _FTPFILESTATUS
{
    TCHAR        szFileName[FTP_MAXFILENAMELEN];
    TCHAR        szFileOwner[FTP_MAXOWNERNAMELEN];
    TCHAR        szFileGroup[FTP_MAXGROUPNAMELEN];
    BOOL         bIsDirectory;
    DWORD        dwFileSize;
    DWORD        dwFileLinks;
    DWORD        dwFileVersion;
    DWORD        dwFilePerms;
    SYSTEMTIME   stFileDate;
} FTPFILESTATUS, *LPFTPFILESTATUS;

Members

szFileName
A string buffer which contains the name of the file on the server.
szFileOwner
A string buffer which contains the name of the user that owns the file on the server. Note that not all server types support the concept of file ownership by a user. Some UNIX systems will not provide this information if an anonymous login was used. For the proprietary Sterling directory formats, the "mailbox" is stored in this member.
szFileGroup
A string buffer which contains the name of the group that owns the file on the server. Note that not all server types support the concept of file ownership by a group. For the proprietary Sterling directory formats, the "batch number" is stored in this member, with the character # prepended for the format FTP_DIRECTORY_STERLING_2.
bIsDirectory
A boolean flag which specifies if the file is actually a subdirectory.
dwFileSize
The size of the file in bytes on the server. Servers that return file information in an MS-DOS format will always set this value to zero if the file refers to a subdirectory. If the file is a text file, the file size on the server may be different than the size on the local host if different end-of-line character conventions are used. It should be noted that under VMS, the file size is reported in 512 byte blocks, so the size should be considered approximate on that platform.
dwFileLinks
The number of links to the file. Note that not all server types support the concept of file links, in which case this value will be zero.
dwFileVersion
The number of revisions made to the file. Note that not all server types support the concept of file versioning, in which case this value will be zero. Currently this value will only be non-zero for VMS platforms.
dwFilePerms
The permissions associated with the file. This value is actually a combination of bits that specify the individual permissions for the file owner, group and world (all other users). For those familiar with UNIX, the file permissions are the same as those used by the chmod command. For the proprietary Sterling directory formats, a bit map representing the status codes and transfer protocol of the file is stored in this member.
stFileDate
A SYSTEMTIME structure which specifies the date that the file was created or last modified.

File Permissions

Value Description
FILE_OWNER_READ The owner has permission to open the file for reading. If the current user is the owner of the file, this grants the user the right to download the file to the local system.
FILE_OWNER_WRITE The owner has permission to open the file for writing. If the current user is the owner of the file, this grants the user the right to replace the file. If this permission is set for a directory, this grants the user the right to create and delete files.
FILE_OWNER_EXECUTE The owner has permission to execute the contents of the file. The file is typically either a binary executable, script or batch file. If this permission is set for a directory, this may also grant the user the right to open that directory and search for files in that directory.
FILE_GROUP_READ Users in the specified group have permission to open the file for reading. If the current user is in the same group as the file owner, this grants the user the right to download the file.
FILE_GROUP_WRITE Users in the specified group have permission to open the file for writing. On some platforms, this may also imply permission to delete the file. If the current user is in the same group as the file owner, this grants the user the right to replace the file. If this permission is set for a directory, this grants the user the right to create and delete files.
FILE_GROUP_EXECUTE Users in the specified group have permission to execute the contents of the file. If this permission is set for a directory, this may also grant the user the right to open that directory and search for files in that directory.
FILE_WORLD_READ All users have permission to open the file for reading. This permission grants any user the right to download the file to the local system.
FILE_WORLD_WRITE All users have permission to open the file for writing. This permission grants any user the right to replace the file. If this permission is set for a directory, this grants any user the right to create and delete files.
FILE_WORLD_EXECUTE All users have permission to execute the contents of the file. If this permission is set for a directory, this may also grant all users the right to open that directory and search for files in that directory.

Sterling Status Codes

Bits 0-25 correspond to letters of the alphabet, most of which have distinct meanings in the Sterling formats.

Letter code Bit position Hexadecimal value
A 0 1h
B 1 2h
C 2 4h
n-th letter of alphabet n-1 2 to the (n-1) power
Z 25 2000000h

For the proprietary Sterling directory formats, bits 26-31 represent the transfer protocol associated with the file:

Protocol Bit position Hexadecimal value Constant
TCP 26 4000000h FTP_STERLING_STATUS_TCP
FTP 27 8000000h FTP_STERLING_STATUS_FTP
BSC 28 10000000h FTP_STERLING_STATUS_BSC
ASC 29 20000000h FTP_STERLING_STATUS_ASC
FTS 30 40000000h FTP_STERLING_STATUS_FTS
other 31 80000000h FTP_STERLING_STATUS_OTHER

Requirements

Minimum Desktop Platform: Windows 7 Service Pack 1
Minimum Server Platform: Windows Server 2008 R2 Service Pack 1
Header File: cstools11.h
Import Library: csftpv11.lib
Unicode: Implemented as Unicode and ANSI versions