2010-04-06 44 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

相關問題