Go to main content

man pages section 3: Library Interfaces and Headers

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

CURLOPT_FTP_FILEMETHOD (3)

Name

CURLOPT_FTP_FILEMETHOD - select directory traversing method for FTP

Synopsis

#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_FTP_FILEMETHOD,
long method);

Description

CURLOPT_FTP_FILEMETHOD(3)  curl_easy_setopt options  CURLOPT_FTP_FILEMETHOD(3)



NAME
       CURLOPT_FTP_FILEMETHOD - select directory traversing method for FTP

SYNOPSIS
       #include <curl/curl.h>

       CURLcode curl_easy_setopt(CURL *handle, CURLOPT_FTP_FILEMETHOD,
                                 long method);

DESCRIPTION
       Pass  a  long  telling libcurl which method to use to reach a file on a
       FTP(S) server.

       This option exists because some server implementations are not  compli-
       ant to what the standards say should work.

       The argument should be one of the following alternatives:

       CURLFTPMETHOD_MULTICWD
              libcurl  does  a  single CWD operation for each path part in the
              given URL. For deep hierarchies this means many  commands.  This
              is  how  RFC1738 says it should be done. This is the default but
              the slowest behavior.

       CURLFTPMETHOD_NOCWD
              libcurl does no CWD at all. libcurl will do SIZE, RETR, STOR etc
              and  give a full path to the server for all these commands. This
              is the fastest behavior.

       CURLFTPMETHOD_SINGLECWD
              libcurl does one CWD with the full  target  directory  and  then
              operates  on  the  file  "normally" (like in the multicwd case).
              This is somewhat more standards compliant than 'nocwd' but with-
              out the full penalty of 'multicwd'.

DEFAULT
       CURLFTPMETHOD_MULTICWD

PROTOCOLS
       FTP

EXAMPLE
       CURL *curl = curl_easy_init();
       if(curl) {
         curl_easy_setopt(curl, CURLOPT_URL, "ftp://example.com/1/2/3/4/new.txt");
         curl_easy_setopt(curl, CURLOPT_FTP_FILEMETHOD,
                                CURLFTPMETHOD_SINGLECWD);

         ret = curl_easy_perform(curl);

         curl_easy_cleanup(curl);
       }

AVAILABILITY
       Added in 7.15.1

RETURN VALUE
       Returns  CURLE_OK  if the option is supported, and CURLE_UNKNOWN_OPTION
       if not.


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       +---------------+------------------+
       |ATTRIBUTE TYPE | ATTRIBUTE VALUE  |
       +---------------+------------------+
       |Availability   | web/curl         |
       +---------------+------------------+
       |Stability      | Uncommitted      |
       +---------------+------------------+

SEE ALSO
       CURLOPT_DIRLISTONLY(3), CURLOPT_FTP_SKIP_PASV_IP(3),



NOTES
       Source code for open source software components in Oracle  Solaris  can
       be found at https://www.oracle.com/downloads/opensource/solaris-source-
       code-downloads.html.

       This    software    was    built    from    source     available     at
       https://github.com/oracle/solaris-userland.    The  original  community
       source      was      downloaded       from        https://curl.se/down-
       load/curl-7.83.1.tar.bz2.

       Further information about this software can be found on the open source
       community website at http://curl.haxx.se/.



libcurl 7.83.1                 October 31, 2021      CURLOPT_FTP_FILEMETHOD(3)