我有点怀疑。我需要获取SFTP服务器上特定目录内文件的列表。我将使用CUROPT_DIRLISTONLY来仅获取名称,但是我不确定如何获取它们。这是我现在拥有的代码的安全性:
string baseUrl(serverAddr + "/" + __destDir);
curl_easy_setopt(anEasyHandle, CURLOPT_URL, (baseUrl).c_str());
curl_easy_setopt(anEasyHandle, CURLOPT_VERBOSE, 1L);
curl_easy_setopt(anEasyHandle, CURLOPT_DIRLISTONLY, 1);
curl_easy_setopt(anEasyHandle, CURLOPT_QUOTE, commandList);
curl_easy_perform(anEasyHandle);
curl_easy_reset(anEasyHandle);
如果我是对的,curl_easy_perform只会返回一个ERROR_CODE(成功或错误,适用),对吗?那么我在哪里可以获得文件列表?
如果我在终端上运行它:curl -u user:pass sftp:// server / path / -l我得到了我想要的列表。
任何帮助,将不胜感激。
提前致谢,
乔治
最佳答案
您需要使用以下签名创建“回调函数”:
size_t function( void *ptr, size_t size, size_t nmemb, void *stream);
然后,您调用curl_easy_setopt将回调函数设置为CURLOPT_WRITEFUNCTION。对于从远程服务器接收到的每个数据块,将调用您的函数,这应该是某种形式的目录列表。
免责声明:我只阅读了documentation,没有尝试过。