3

我有点怀疑。我需要获取 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 我得到我想要的列表......

任何帮助,将不胜感激。

在此先感谢,乔治

4

1 回答 1

5

您需要创建一个具有以下签名的“回调函数”:

size_t function( void *ptr, size_t size, size_t nmemb, void *stream);

然后调用curl_easy_setopt将回调函数设置为 CURLOPT_WRITEFUNCTION。您的函数将从远程服务器接收到的每个数据块调用,这应该是某种形式的目录列表。

免责声明:我只阅读了这方面的文档,没有尝试过。

于 2010-04-06T14:33:00.627 回答