|   | 
      
        
          This structure is used by the EnumFiles, GetFirstFile and
          GetNextFile methods to return information about files on the server.
          This structure is designed for use with extended functions that support
          files larger than 4GB. 
         
        
        
          
typedef struct _FTPFILESTATUSEX
{
    TCHAR          szFileName[FTP_MAXFILENAMELEN];
    TCHAR          szFileOwner[FTP_MAXOWNERNAMELEN];
    TCHAR          szFileGroup[FTP_MAXGROUPNAMELEN];
    BOOL           bIsDirectory;
    ULARGE_INTEGER uiFileSize;
    DWORD          dwFileLinks;
    DWORD          dwFileVersion;
    DWORD          dwFilePerms;
    DWORD          dwFileFlags;
    SYSTEMTIME     stFileDate;
} FTPFILESTATUSEX, *LPFTPFILESTATUSEX;
         
        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.
 
            - uiFileSize
 
            - 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.
 
            - dwFileFlags
 
            - This structure member is reserved for future use.
 
            - 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 
         
       | 
        |