ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

Help / WLanguage / WLanguage functions / Communication / FTP functions
  • Managing the progress of the transfer
  • Timeout
  • Rights of users
  • Relative and absolute path
  • AS/400 FTP server
WINDEV
WindowsLinuxJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac Catalyst
Others
Stored procedures
Transfers a file from an FTP (File Transfer Protocol) server to the current computer.
Note: This function allows you to recover only one file. This file must exist on the FTP server. In this case, FTPGetFile is faster than FTPGet.
New in SaaS
Note: This feature is only available from WINDEV Suite SaaS 2025 - Update 2. For more details, see Using new features exclusive to WINDEV Suite SaaS 2025.
New in SaaS
A new syntax for manipulating variables of type ftpConnection is available from WINDEV Suite SaaS 2025 - Update 2.
Example
// Connect the current computer to the FTP server
ConnectionNumber = FTPConnect("192.54.12.8")

// Download the "/Document/File.txt" file found on the FTP server 
// in the "D:\Temp" directory on the current computer 
ResRetrieve = FTPGetFile(ConnectionNumber, "/Document/File.txt", "D:\Temp")
New in SaaS
Reports and Queries
// Syntax not available in PHP
// Connect the current computer to the FTP server
MyFTPConnection is ftpConnection
MyFTPConnection.Server = "192.54.12.8"
FTPConnect(MyFTPConnection)

// Download the "/Document/File.txt" file found on the FTP server 
// in the "D:\Temp" directory on the current computer 
ResRetrieve = FTPGetFile(MyFTPConnection, "/Document/File.txt", "D:\Temp")
Syntax
<Result> = FTPGetFile(<FTP connection> , <File to get> , <Destination file/directory> [, <WLanguage procedure> [, <Transfer mode>]])
<Result>: Boolean
  • True if the transfer was performed,
  • False otherwise. To get more details on the error, use ErrorInfo with the errMessage constant.
    Note: The result may be incorrect on some Unix servers. Existing files may not be found.
<FTP connection>: Integer or ftpConnection variable
<File to get>: Character string
Name and absolute (or relative) path of the file to get. This file is located on the FTP server. The different parts of the path are separated by "slashes" ("/").
Note: Directory names are case sensitive. You must use the same case as the one used on the FTP server (uppercase/lowercase characters).
No wildcard character (* or?) can be used. To retrieve several files, use FTPListFile beforehand to get the name of the files to retrieve.
An absolute path has the following format: "/<DirectoryName>/<FileName>". The tree structure has the following format: "/<DirectoryName>/<FileName>".
A relative path has the following format: "<DirectoryName>/<FileName>". The tree structure has the following format: "/<CurrentServerDirectory>/<DirectoryName>/<FileName>".
When retrieving the file:
  • if <Destination file/directory> is a directory found on the current computer, the file to retrieve is copied to the destination directory.
  • if <Destination file/directory> is a file found on the current computer, the file to retrieve is copied and renamed.
<Destination file/directory>: Character string
Name and full or relative path of the destination file or directory. A UNC path can be used.
If this parameter corresponds to a name of an existing directory on the client computer, a file with the same name as the file to get is created in this directory.
<WLanguage procedure>: Procedure name
Name of WLanguage procedure automatically called to check the transfer progress. This procedure can be a global method of the class (in the following format: <Class name>::<GlobalMethodName>).
<Transfer mode>: Optional Integer constant
Transfer mode used:
ftpASCIIModeTransfer performed in ASCII mode. This mode is used to transfer files between different operating systems, e.g. UNIX to Windows. The file is delivered in the ASCII format used by the receiving system.
ftpBinaryMode
(Default value)
Transfer performed in binary mode. The file is strictly identical between the sending and the receiving.
Remarks

Managing the progress of the transfer

FTPGetFile is a blocking function. No other action can be performed until the current transfer has been completed.
To check the progress of the transfer, FTPGetFile can automatically call the <WLanguage procedure> at regular intervals (every 64 KB).
This procedure is declared as follows:
PROCEDURE <Procedure name>(<Total size>, <Transferred size>)
where:
  • <Total size> is an integer representing the total size of the file being transferred.
  • <Transferred size> is an integer representing the number of bytes already transferred.
In this procedure, you can:
  • display a progress bar (using a Progress Bar control for example),
  • determine if the transfer is completed (<Total size> = <Transferred size>).
FTPGetFile cannot be interrupted until the transfer is completed. To stop the function, use the following line of code in <Procedure name>:
RETURN False
In any other case (to continue), <Procedure name> MUST return True.
An error is generated if <Procedure name> returns no value (neither True nor False).

Timeout

By default, all the FTP functions fail if the FTP server does not respond within 20 seconds. This time can be modified:

Rights of users

Only a user who has read rights on the FTP server can get information about the files or the directories located on an FTP server. In most cases, the read rights are granted to the "anonymous" users.

Relative and absolute path

The notions of relative path and absolute path are very important in an FTP application.
  • A path beginning with a slash is considered an absolute path. This path is relative to the root of the FTP server (server-specific parameter).
    ex: /pub/user/JULIA
  • If the path does not begin with a slash, it is considered a relative path, i.e. the path relative to the current directory. This current directory can be obtained or changed using FTPCurrentDir.
When connecting to an FTP site, the initial directory (the "base directory" of the user) is not necessarily found at the root of the FTP server. Therefore, we recommend that you use relative paths.

AS/400 FTP server

FTPGetFile does not work properly on an AS/400 FTP server.
In this case, we recommend that you use FTPCommand with the FTP "RETR" command (for more details, see the documentation about the FTP server).
Component: wd300com.dll
Minimum version required
  • Version 25
This page is also available for…
Comments
Click [Add] to post a comment

Last update: 05/05/2025

Send a report | Local help