我需要将目录上传到我的应用程序上的FTP服务器,并计划 使用 libcurl 。我看到没有直接的方法来上传一个目录很多 文件,这对我来说很有意义。但是,我无法提及任何提及 上传许多文件。
如果我获取目录中的文件列表,我可以在循环中上传它们。
选项CURLOPT_FTP_CREATE_MISSING_DIRS
可能有助于子目录,
但是,如果我想知道我是否错过了这一点,或者这样做
任何严重的缺点。
主要问题是:如何保持连接“开放”?重新连接 每个文件可能意味着额外的不必要的开销。
理想情况下,我想继续使用简单的界面。但如果是另一个界面 在这种情况下提供更好的支持,我会使用它。
CURLcode ret;
CURL *handle = curl_easy_init();
/* Connect to FTP server using *
* the given username and password */
for ({each file}) {
curl_easy_setopt(handle, ..., ...);
...
ret = curl_easy_perform(handle);
/* Analyse return code */
curl_easy_reset(handle);
}
/* Disconnect from server */
curl_easy_clenup(handle);
答案 0 :(得分:12)
只需重复使用相同的句柄,它将尽可能地保持连接打开,随后的传输将重新使用前一个。
使用easy界面时,连接缓存将保持在简单的句柄中。如果您改为使用多接口,则连接缓存将保留在多个句柄中,并将在同一个多句柄中使用的所有简单句柄之间共享。