Contents Index Topic Contents | ||
Previous Topic: FtpGetCurrentDirectory Next Topic: FtpOpenFile |
FtpGetFile
BOOL FtpGetFile( IN HINTERNET hFtpSession, IN LPCSTR lpszRemoteFile, IN LPCSTR lpszNewFile, IN BOOL fFailIfExists, IN DWORD dwLocalFlagsAndAttributes, IN DWORD dwInternetFlags, IN DWORD dwContext );Retrieves a file from the FTP server and stores it under the specified file name, creating a new local file in the process.
- Returns TRUE if successful, or FALSE otherwise. To get a specific error message, call GetLastError.
- hFtpSession
- Valid handle to an FTP session.
- lpszRemoteFile
- Address of a null-terminated string that contains the name of the file to retrieve from the remote system.
- lpszNewFile
- Address of a null-terminated string that contains the name of the file to create on the local system.
- fFailIfExists
- Boolean flag that indicates whether the function should proceed if a local file of the specified name already exists. If fFailIfExists is TRUE and the local file exists, FtpGetFile fails.
- dwLocalFlagsAndAttributes
- File attributes for the new file. Can be any combination of the FILE_ATTRIBUTE_* flags used by the CreateFile function. For more information on FILE_ATTRIBUTE_* attributes, see CreateFile in the Platform SDK.
- dwInternetFlags
- Flags that control how the function will handle the file download. The first set of flag values indicates the conditions under which the transfer occurs. These transfer type flags can be used in combination with the second set of flags that control caching. The application can select one of these transfer type values:
- FTP_TRANSFER_TYPE_ASCII
- Transfers the file using FTP's ASCII (Type A) transfer method. Control and formatting information is converted to local equivalents.
- FTP_TRANSFER_TYPE_BINARY
- Transfers the file using FTP's Image (Type I) transfer method. The file is transferred exactly as it exists with no changes. This is the default transfer method.
- FTP_TRANSFER_TYPE_UNKNOWN
- Defaults to FTP_TRANSFER_TYPE_BINARY.
- INTERNET_FLAG_TRANSFER_ASCII
- Transfers the file as ASCII.
- INTERNET_FLAG_TRANSFER_BINARY
- Transfers the file as binary.
- The following flags determine how the caching of this file will be done. Any combination of the following flags can be used with the transfer type flag. The possible values are:
- INTERNET_FLAG_DONT_CACHE
- Does not add the returned entity to the cache. Identical to the preferred value, INTERNET_FLAG_NO_CACHE_WRITE.
- INTERNET_FLAG_HYPERLINK
- Forces a reload if there was no Expires time and no Last-Modified time returned from the server when determining whether to reload the item from the network.
- INTERNET_FLAG_MAKE_PERSISTENT
- No longer supported.
- INTERNET_FLAG_MUST_CACHE_REQUEST
- Causes a temporary file to be created if the file cannot be cached. Identical to the preferred value, INTERNET_FLAG_NEED_FILE.
- INTERNET_FLAG_NEED_FILE
- Causes a temporary file to be created if the file cannot be cached.
- INTERNET_FLAG_NO_CACHE_WRITE
- Does not add the returned entity to the cache.
- INTERNET_FLAG_RELOAD
- Forces a download of the requested file, object, or directory listing from the origin server, not from the cache.
- INTERNET_FLAG_RESYNCHRONIZE
- Causes the FTP resource to be reloaded from the server.
- dwContext
- Application-defined value that associates this search with any application data. This is used only if the application has already called InternetSetStatusCallback to set up a status callback function.
FtpGetFile is a high-level routine that handles all the bookkeeping and overhead associated with reading a file from an FTP server and storing it locally. An application that needs to retrieve file data only or that requires close control over the file transfer should use the FtpOpenFile and InternetReadFile functions.
If the dwTransferType parameter specifies FILE_TRANSFER_TYPE_ASCII, translation of the file data converts control and formatting characters to local equivalents. The default transfer is binary mode, where the file is downloaded in the same format as it is stored on the server.
Both lpszRemoteFile and lpszNewFile can be either partially or fully qualified file names relative to the current directory. A backslash (\) or forward slash (/) can be used as the directory separator for either name. FtpGetFile translates the directory name separators to the appropriate character before they are used.
Top of Page
© 1997 Microsoft Corporation. All rights reserved. Terms of Use.