Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
CURLOPT_FTP_FILEMETHOD(3)  Library Functions Manual  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 RFC 1738 says it should be done. This is the default but
	      the slowest behavior.

       CURLFTPMETHOD_NOCWD
	      libcurl makes no CWD at all. libcurl does	SIZE, RETR,  STOR  etc
	      and gives	a full path to the server for all these	commands. This
	      is the fastest behavior since it skips having to change directo-
	      ries.

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

DEFAULT
       CURLFTPMETHOD_MULTICWD

PROTOCOLS
       This functionality affects ftp only

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

	   res = curl_easy_perform(curl);

	   curl_easy_cleanup(curl);
	 }
       }

AVAILABILITY
       Added in	curl 7.15.1

RETURN VALUE
       curl_easy_setopt(3) returns a CURLcode indicating success or error.

       CURLE_OK	(0) means everything was OK, non-zero means an error occurred,
       see libcurl-errors(3).

SEE ALSO
       CURLOPT_DIRLISTONLY(3), CURLOPT_FTP_SKIP_PASV_IP(3)

libcurl				  2025-06-03	     CURLOPT_FTP_FILEMETHOD(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=CURLOPT_FTP_FILEMETHOD&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>

home | help