C ++:如何使用libcurl检查FTP服务器上是否存在目录

时间:2012-08-20 22:48:55

标签: c++ ftp libcurl

我在这个问题上结束了我的智慧。我需要检查远程FTP服务器上是否存在目录。这就是我的想法:

//ls - lists the names of the files in the remote directory
string query = "ls /public_html/somefolder/";

//prepare to send
headers = curl_slist_append(headers, query.c_str());
curl_easy_setopt(curl, CURLOPT_QUOTE, headers); 

//send query to ftp server
res = curl_easy_perform(curl);

//check result
if(res == CURLE_OK) {
    cout << "FOLDER EXISTS";
} else {
    cout << "FOLDER DOESN'T EXIST";
}

当我检查res变量包含的内容时,它会输出:

  

CURLE_QUOTE_ERROR(21)。

有关如何正确执行此操作的任何想法?我大量搜索了谷歌。

1 个答案:

答案 0 :(得分:2)

请勿尝试使用CURLOPT_QUOTELIST是数据传输,因此会将其作为CURLOPT_URL

的一部分进行处理
CURL *curl = curl_easy_init();
curl_easy_setopt(curl, CURLOPT_URL, "ftp://ftp@ftp.gnu.org/pub/");
curl_easy_setopt(curl, CURLOPT_NOBODY, 1L);
CURLcode res = curl_easy_perform(curl);
if(res == CURLE_OK) std::cout << "FOLDER EXISTS\n";
else std::cout << "FOLDER DOESN'T EXIST\n";