我正在从wxWidgets附带的wxFTP迁移到libcurl。我疯狂地通过简单地提供URL连接并获取所有目录和文件在/目录。现在我需要更改到另一个目录(比如/ public_html / mysite)。我无法用libcurl做到这一点。
我无法相信它在libcurl中如此难以做到所以我倾向于得出结论,我在这里想念一些东西。我的相关代码如下所示,我所拥有的是相对路径,例如/ www而不是像ftp://someurl.com/www/这样的ftp网址
很抱歉,如果它对libcurl来说很明显,并且已经工作了好几个小时已经不成功。
CURL* handle = curl_easy_init();
SetHandleOptions(handle); //set options
CURLcode res;
if(handle)
{
wxString command ="CWD "+path;
curl_easy_setopt(handle, CURLOPT_CUSTOMREQUEST , command.ToStdString().c_str());
res = curl_easy_perform(handle);
if(res==CURLE_OK)
{
wxString str(curl_easy_strerror(res));
SendMessage(str);
curl_easy_setopt(handle, CURLOPT_CUSTOMREQUEST , "MLSD");
res = curl_easy_perform(handle);
if(res==CURLE_OK)
{
wxString str(curl_easy_strerror(res));
SendMessage(str);
}
else
{
//send error message
wxString str(curl_easy_strerror(res));
SendMessage(str);
}
}
else
{
//send error message
wxString str(curl_easy_strerror(res));
SendMessage(str);
}
}
curl_easy_cleanup(handle);
答案 0 :(得分:0)
我的错误是代码结束了发送格式为ftp://ftp.hosanna.site40.net:21/public_html
的网址所以我改为在简单的setopt中使用PORT。
所以它不是卷曲的问题,而是我的(虽然对我来说非常微妙) 还要确保以/或libray结尾的所有目录都将它们解释为文件。
例如
ftp://ftp.hosanna.site40.net/public_html //interpreted as file
ftp://ftp.hosanna.site40.net/public_html/ //interpreted as directory