DataFlex
DataFlex
Get an FTP Listing Entry's Size as a String
See more FTP Examples
Demonstrates the Chilkat Ftp2.GetSizeStr method, which returns the size in bytes of a cached directory-listing entry as a decimal string. The only argument is a zero-based index.
Background: Returning the size as text sidesteps integer-width limits entirely, which is useful in languages without a convenient 64-bit type and whenever you only need to display or log the value. Parse the string when you need to do arithmetic on it; otherwise it is ready to print as-is.
Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoFtp
Integer n
Integer i
String sName
String sFileSize
String sTemp1
Move False To iSuccess
// Demonstrates the Ftp2.GetSizeStr method, which returns the size in bytes of a cached
// directory-listing entry as a decimal string. The only argument is a zero-based index.
Get Create (RefClass(cComChilkatFtp2)) To hoFtp
If (Not(IsComObjectCreated(hoFtp))) Begin
Send CreateComObject of hoFtp
End
Set ComHostname Of hoFtp To "ftp.example.com"
Set ComUsername Of hoFtp To "myFtpLogin"
// Normally you would not hard-code the password in source. You should instead obtain it
// from an interactive prompt, environment variable, or a secrets vault.
Set ComPassword Of hoFtp To "myPassword"
Get ComConnect Of hoFtp To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoFtp To sTemp1
Showln sTemp1
Procedure_Return
End
Get ComChangeRemoteDir Of hoFtp "public_html" To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoFtp To sTemp1
Showln sTemp1
Procedure_Return
End
// GetDirCount retrieves the directory listing on the first call and returns the number of
// entries. A negative return indicates failure.
Get ComGetDirCount Of hoFtp To n
If (n < 0) Begin
Get ComLastErrorText Of hoFtp To sTemp1
Showln sTemp1
Procedure_Return
End
For i From 0 To (n - 1)
Get ComGetFilename Of hoFtp i To sName
// The string form avoids integer-size limits in languages without a convenient 64-bit type.
Get ComGetSizeStr Of hoFtp i To sFileSize
Showln sName " " sFileSize " bytes"
Loop
Get ComDisconnect Of hoFtp To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoFtp To sTemp1
Showln sTemp1
Procedure_Return
End
End_Procedure