VS2010下,
使用libcurl库,上传文件sftp服务器,是成功的。
但又想在sftp上新建文件夹,新建文件夹总是失败,但用FileZilla软件测试,可以正常在sftp上新建文件夹。
之前没用过sftp传文件,对libcurl也不太熟,所有想问下有没可以用的代码,发我抄抄。
#include<iostream>
#include <stdlib.h>
#include <stdio.h>
#include <curl/curl.h>
void CTest02Dlg::OnBnClickedButton3()
{
// TODO: 在此添加控件通知处理程序代码
// sftp服务器的IP是192.168.2.15,端口是22,已有/test02/folder路径,想在test02/folder路径下建个20230510的文件夹
// sftp用户名sftpuser,密码123。
CURL *curl;
CURLcode res;
struct curl_slist *headerlist = NULL;
curl_global_init(CURL_GLOBAL_DEFAULT);
curl = curl_easy_init();
if(curl)
{
curl_easy_setopt(curl, CURLOPT_URL, "sftp://192.168.2.15:22/test02/folder");
curl_easy_setopt(curl, CURLOPT_USERPWD,"sftpuser:123");
curl_easy_setopt(curl, CURLOPT_NOBODY, 1L);
headerlist = curl_slist_append(headerlist, "mkdir /test02/folder/20230510");
curl_easy_setopt(curl, CURLOPT_POSTQUOTE, headerlist);
curl_easy_setopt(curl, CURLOPT_VERBOSE, 0L); //0去掉调试信息, 1添加调试信息
res = curl_easy_perform(curl);// 这里返回的是res=CURLE_REMOTE_ACCESS_DENIED
curl_easy_cleanup(curl);
if(CURLE_OK != res)
{
fprintf(stderr, "curl told us %d\n", res);
}
curl_slist_free_all(headerlist);
}
curl_global_cleanup();
}