我有点怀疑。我需要获取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,没有尝试过。

09-27 03:13