【问题标题】:How to download entire directory in sftp using libcurl如何使用 libcurl 在 sftp 中下载整个目录
【发布时间】:2012-02-21 12:43:46
【问题描述】:

我正在用 C 语言编程。我想使用 libcurl 从服务器 (SFTP) 下载特定目录。我知道我们可以使用以下选项下载文件,但如何下载目录。对于 SFTP 通配符匹配选项也不支持,因此我至少可以下载该目录中的所有文件。

curl_easy_setopt(curl, CURLOPT_WRITEDATA, fd);

平台:Linux

【问题讨论】:

  • 这个问题你解决了吗??我也面临同样的问题。
  • 是的,我已经列出了来自 SFTP 服务器的文件并选择了所需的文件。然后一一下载。只有这样,我们才能做到这一点。 libcurl 中没有回调选项可以直接实现这一点。
  • @john 能否请您帮忙解答一下您是如何解决问题的,因为我对编程非常陌生,遇到了同样的问题,我只能使用 curl 站点的示例下载 1 个文件。示例源将有很大帮助。谢谢

标签: c linux curl libcurl sftp


【解决方案1】:

您可能需要明确列出目录,并下载其中不是... 的每个文件(可能在子目录上递归)。

因此,您首先发出列出目录的请求。然后,您(在本地)构建由该请求获得的条目数组。然后,对于每个这样的条目,你发出一个下载文件的请求,或者,如果它是一个 [子] 目录,你在里面递归。

如果您的 FTP 服务器的另一个客户端在同一目录中添加或删除文件,您总是会遇到问题。

顺便说一句,一些 FTP 服务器能够如果您检索 foo.tar.gz 等,则归档整个目录 foo/

【讨论】:

  • libcurl 中有没有选项?
  • 是的,我已经实现了这个。
  • 您能描述一下您的解决方案吗?
猜你喜欢
  • 2013-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多