2010-04-06 215 views
2

我有一点疑问。我需要获取SFTP服务器上特定目录内的文件列表。我将使用CUROPT_DIRLISTONLY来获取名称,但我不知道如何获取它们。这是代码的和平我现在:在libcurl中使用sftp协议 - 如何列出目录的内容?

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(成功或错误的IR适用),是否正确?那我在哪里可以得到文件列表?

如果我在终端上运行:卷曲-u用户:通过SFTP://服务器/路径/ I -l获取列表我想....

任何帮助,将不胜感激。

由于提前,乔治

回答

4

你需要创建一个“回调函数”具有以下特征:

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

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

声明:我只读了documentation这个,没试过。

+0

发布后的几分钟,我发现文档信息相同。我正在尝试,它接缝工作。稍后我会回来更好的结果。 Thansk很多。 – George 2010-04-06 14:56:16

相关问题