#libcurl获取FTP目录信息
如需转载请标明出处:http://blog.csdn.net/itas109
QQ技术交流群:129518033
FileZilla版本:FileZilla_Server-0_9_60_2
libcurl版本:curl-7.56.0
需求:
可以获取FTP指定目录下的文件信息,如文件名称、文件大小、文件类型、文件最后修改时间等
##1.使用NLST命令
命令返回值:
00008d38072c01ba00e41507ba1bcb20.mdat\r\n03258da63bccf1b387185bdd0b7afd76.mdat\r\n
代码:
CURL *curl = NULL;
curl = curl_init();
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_USERPWD, user_key);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "NLST");//00008d38072c01ba00e41507ba1bcb20.mdat
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, getFTPFileList);
curl_perform(curl);
curl_exit(curl);
##2.使用LIST命令
命令返回值:
-rw-r--r-- 1 ftp ftp 154168 Jan 20 18:53 00008d38072c01ba00e41507ba1bcb20.mdat\r\n-rw-r--r-- 1 ftp ftp 154168 Feb 23 09:36 03258da63bccf1b387185bdd0b7afd76.mdat\r\n
代码:
CURL *curl = NULL;
curl = curl_init();
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_USERPWD, user_key);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "LIST");//-rw-r--r-- 1 ftp ftp 132144 Jan 29 11:13 f918165bf50dd4566612b19bfc3386c3.mdat
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, getFTPFileList);
curl_perform(curl);
curl_exit(curl);
##3.使用MLSD命令
命令返回值:
type=file;modify=20180120185307;size=154168; 00008d38072c01ba00e41507ba1bcb20.mdat\r\ntype=file;modify=20180223013632;size=154168; 03258da63bccf1b387185bdd0b7afd76.mdat\r\n
代码:
CURL *curl = NULL;
curl = curl_init();
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_USERPWD, user_key);
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "MLSD");//type=file;modify=20180223013632;size=154168; 03258da63bccf1b387185bdd0b7afd76.mdat
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, getFTPFileList);
curl_perform(curl);
curl_exit(curl);
##4.结论
如果仅获取文件名,那么NLST足够;
如果需要获取文件类型、修改日期、大小、名称等信息,使用MLSD足够,但是需要FTP支持该命令,如果不支持该命令,只能使用LIST命令。
觉得文章对你有帮助,可以扫描二维码捐赠给博主,谢谢!
如需转载请标明出处:http://blog.csdn.net/itas109
QQ技术交流群:129518033