2010-04-06 3 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 그냥 (이 적용 IR 성공 또는 오류)를 ERROR_CODE를 반환 올바른 :이 지금까지 내가 가진 코드의 평화입니까? 그렇다면 파일 목록을 어디서 구할 수 있습니까?

내가 터미널에서 실행하는 경우 : -u 사용자 말림 : SFTP를 통과 : // 서버/경로/내가 어떤 도움을 주시면 감사하겠습니다

내가 원하는 목록을 .... 얻을 -l. 사전에

감사합니다, 조지

답변

4

는 다음과 같은 서명과 함께 "콜백 함수"를 작성해야합니다 : 당신은 다음 CURLOPT_WRITEFUNCTION로 콜백 함수를 설정 curl_easy_setopt 전화

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

. 당신의 함수는 원격 서버로부터 수신 된 데이터의 각 덩어리에 대해 호출 될 것입니다. 이것은 어떤 형태의 디렉토리 목록이어야합니다.

면책 조항 : 나는 이것에만 documentation을 읽었으며 시도하지 않았습니다.

+0

게시 후 얼마 지나지 않아 문서에 대한 정보가 공개되었습니다. 나는 노력하고있어 솔기가 일하고있다. 나중에 나는 더 나은 결과로 돌아올 것이다. Thansk 많이. – George

관련 문제