GNURLOPT_DIRLISTONLY(3)

πŸ“¦ version 7.72.0, in nixos 26.05, nixpkgs unstable

πŸ’… NAME

okay bestie, this page is GNURLOPT_DIRLISTONLY(3) from the curl_easy_setopt options manual, and it's literally about asking for names only in a directory listing. no sizes, no dates, just the names. πŸŽ€

✨ SYNOPSIS ✨

#include <gnurl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_DIRLISTONLY, long listonly);

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so for FTP and SFTP based URLs, setting the parameter to 1 tells the library to list the names of files in a directory, rather than doing a full directory listing that would normally include file sizes, dates, etc. just the names, periodt. ✨

For POP3, a parameter of 1 tells the library to list the email message or messages on the POP3 server. This can be used to change the default behaviour of libcurl, when combined with a URL that contains a message ID, to perform a "scan listing" which can then be used to determine the size of an email. πŸ‘‘

Note: for FTP this causes a NLST command to be sent to the FTP server. Beware that some FTP servers list only files in their response to NLST; they might not include subdirectories and symbolic links. 😭

Setting this option to 1 also implies a directory listing even if the URL doesn't end with a slash, which otherwise is necessary. πŸ’…

Do NOT use this option if you also use CURLOPT_WILDCARDMATCH(3) as it will effectively break that feature then. 🫢 like seriously, don't.

🌸 DEFAULT 🌸

0, disabled.

🧚 PROTOCOLS 🧚

FTP, SFTP and POP3

πŸ”₯ EXAMPLE πŸ”₯

CURL *curl = curl_easy_init();
if(curl) {
  curl_easy_setopt(curl, CURLOPT_URL, "ftp://example.com/dir/");

  /* list only */
  curl_easy_setopt(curl, CURLOPT_DIRLISTONLY, 1L);

  ret = curl_easy_perform(curl);

  curl_easy_cleanup(curl);
}

πŸŽ€ AVAILABILITY πŸŽ€

This option was known as CURLOPT_FTPLISTONLY up to 7.16.4. POP3 is supported since 7.21.5. πŸ’œ

πŸ‘‘ RETURN VALUE πŸ‘‘

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

🌈 SEE ALSO 🌈


mwah πŸ’‹ β€” this page is from libcurl 7.37.0, dated 17 Jun 2014. go slay your directory listings bestie 🫢

πŸ“¦ where this page comes from