GETFILESIZE

Get the size of a local or remote file.

Syntax: GETFILESIZE(location,file)

  • location: Set it to one of the following values.
    LOCAL The file in the second parameter is a local file.
    REMOTE The file in the second parameter is a file located in the FTP server.

  • file: file name with or without path.


Return Value:
GETFILESIZE returns the size of the file in bytes if the operation was successful. On error, it returns a negative value of the corresponding error code.

Command compatibility:
This command was added in ScriptFTP 3.2 build Jan 11th 2009.

See also:
GETFILETIME

Examples:

# Get the file size (in bytes) of the remote file
# test1.txt located in the current remote directory
$size=GETFILESIZE(REMOTE,"test1.txt")

# The size is
PRINT($size)

# Get the file size (in bytes) of the remote file
# test2.txt located in myremotedir/myremotesubdir/
$size=GETFILESIZE(REMOTE,"myremotedir/myremotesubdir/test2.txt")

# The size is
PRINT($size)

# Get the file size (in bytes) of the remote file
# test3.txt located in the remote root directory
$size=GETFILESIZE(REMOTE,"/test3.txt")


# Get the file size (in bytes) of the local file
# test4.txt located in the current local directory
$size=GETFILESIZE(LOCAL,"test4.txt")

# The size is
PRINT($size)

# Get the file size (in bytes) of the local file
# test5.txt located in D:\example
$size=GETFILESIZE(LOCAL,"D:\example\test5.txt")

# The size is
PRINT($size)


# This script checks every 10 seconds if a
# remote file has changed its size. If the
# size changes it downloads the file.

:start

$result=OPENHOST("127.0.0.1","carl","123456")


# Check if the connection failed
IF($result!="OK")
   # wait 5 seconds and try again
   SLEEP(5)
   GOTO :start
END IF

:check_file_size

$file_size=GETFILESIZE(REMOTE,"data.log")


# Check if GETFILESIZE failed
IF($file_size<0)
   # wait 5 seconds and try again
   SLEEP(5)
   
   # Connection may be still opened
   CLOSEHOST
   
   # Jump to the beginning of the script
   GOTO :start
END IF

PRINT("Last size was ".$last_file_size)
PRINT("Read size is ".$file_size)

# Check if the file size has changed
IF($last_file_size!=$file_size)
   # the size has changed. download the file
   
   PRINT("File size change detected")
   $result=GETFILE("data.log")
   
   # If the download failed jump to start
   IF($result!="OK")
      # wait 5 seconds and try again
      SLEEP(5)
      
      # Connection may be still opened
      CLOSEHOST
      
      # Jump to the beginning of the script
      GOTO :start
   ELSE
      PRINT("File successfully downloaded")
      $last_file_size=$file_size
      
      # Wait 10 seconds and check if
      # the size has changed again
      SLEEP(10)
      GOTO :check_file_size
   END IF
ELSE
   # The size has not changed.
   # wait 10 seconds and check again
   SLEEP(10)
   GOTO :check_file_size
END IF