Geo*_*ira 3 c++ sftp curl libcurl
我有一点疑问。我需要获取 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);
Run Code Online (Sandbox Code Playgroud)
如果我是对的,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);
Run Code Online (Sandbox Code Playgroud)
然后调用curl_easy_setopt将回调函数设置为CURLOPT_WRITEFUNCTION。将从远程服务器接收到的每个数据块都会调用您的函数,这应该是某种形式的目录列表。
免责声明:我只阅读了这方面的文档,没有尝试过。