使用 libcurl 下载目录中的所有文件

2024-01-16

我是 libcurl 的新手,找到了一种从 ftp 服务器下载单个文件的方法。现在我的要求是下载目录中的所有文件,我猜 libcurl 不支持它。请建议 libcurl 如何下载目录中的所有文件,或者是否有其他类似于 libcurl 的库?

提前致谢。


这是一段示例代码。

static size_t GetFilesList_response(void *ptr, size_t size, size_t nmemb, void *data)
{
    FILE *writehere = (FILE *)data;
    return fwrite(ptr, size, nmemb, writehere);
}

bool FTPWithcURL::GetFilesList(char* tempFile)
{
    CURL *curl;
    CURLcode res;
    FILE *ftpfile;

    /* local file name to store the file as */
    ftpfile = fopen(tempFile, "wb"); /* b is binary, needed on win32 */ 

    curl = curl_easy_init();
    if(curl) 
    {
        curl_easy_setopt(curl, CURLOPT_URL, "ftp://ftp.example.com");
        curl_easy_setopt(curl, CURLOPT_USERPWD, "username:password");
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, ftpfile);
        // added to @Tombart suggestion
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, GetFilesList_response);
        curl_easy_setopt(curl, CURLOPT_DIRLISTONLY, 1);

        res = curl_easy_perform(curl);

        curl_easy_cleanup(curl);
    }

    fclose(ftpfile); //


    if(CURLE_OK != res) 
        return false;

    return true;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 libcurl 下载目录中的所有文件 的相关文章

随机推荐

  • 在进程启动之前向进程注入 dll 的优雅方法

    我正在制作一个 mod dll 来修改目标进程的行为 我成功地注入了我的dll并挂钩了目标的一些函数 但是 当我需要在主模块启动之前 更清楚地说 在入口点之前 挂钩一些 API 时 需要做更多的工作 我需要使用 CREATE SUSPEND
  • 如何将 270 度旋转的文本对齐到左上角?

    这应该是一个你会想到的非常简单的问题 我有一个带有一些标题文本的框 我想将其旋转 90 度 我希望它是绝对定位的 以便单词的末尾被轻推到左上角 我可以很容易地将其对齐到底部 但问题是 对于可变长度文本 在对齐到顶部时似乎不可能始终将其保留在
  • Java 中的日语字符编码

    这是我的问题 我现在正在使用 Java Apache POI 读取 Excel xls 或 xlsx 文件 并显示内容 电子表格中有一些日语字符 我得到的所有日语字符都是 在我的输出中 我尝试过使用Shift JIS UTF 8等多种编码方
  • 抽象超类中的通用 @Inject'd 字段

    考虑一组类似 MVP 的类型 存在一个抽象的 Presenter 带有一个 View 接口 public interface View public abstract class AbstractPresenter
  • 在 TextView 中省略文本大小而不指定 maxLines

    我有一个 TextView 其高度会根据屏幕中的其他组件而变化 我要在此 TextView 中设置很长的文本 因此我想省略它 简单地指定 android ellipsize end 是行不通的 只有同时指定 maxLines 时 椭圆化才起
  • 将图像序列转换为视频文件 android java

    我知道这是一个老问题 我对此进行了很多研究 但似乎没有适当的解决方案 我已经看到了一些方法可以做到这一点 例如 使用 FFmpeg 但它取决于本机代码 所以对我来说不是一个选择 Xuggler API 与上面的原因相同 我正在寻找可以将多个
  • 如何使用R连接两台计算机?

    是否可以在两台不同计算机上的两个 R 会话之间打开通信流 如果会话位于同一台计算机上 我使用套接字来连接会话 我想对于两台不同的计算机 我应该尝试网络套接字 httpuv支持 R 作为 Web 套接字服务器 但不幸的是 我找不到任何支持 R
  • WPF MVVM 在代码后面绑定动态控件并传入View

    我正在使用 MVVM 开发 WPF 应用程序 我有两页 我在第 1 页中有多个 UserControl 在从第 1 页选择 UserControl 时 我想在第 2 页中显示所选的 userControl 下面是我的代码 视图模型代码 pu
  • 无法在 Android Studio 中启动模拟器

    我尝试在 ubuntu 14 04 中的 android Studio 模拟器中启动应用程序 它显示以下错误 gradle 构建过程中显示错误 home next NTE MachineSetup android sdk linux too
  • JSF 和 f:ajax 用于隐藏/显示 div

    我正在考虑在我的网络应用程序上制作一个可隐藏 可显示的菜单 在此之前 我为此目的广泛使用了 PHP 和 AJAX 然而 由于 HTML 元素 id 在 JSF 框架中重新生成 我发现这种方法至少在我的范围内不再可行 我已经阅读了 JSF 中
  • AMD 结构化网络应用程序中的 Mixpanel 2.2 - 例如需要.js

    我正在尝试在基于 Backbone js 和 require js 的单页面站点中使用 Mixpanel 事件跟踪 看着snippet https mixpanel com help reference tracking an event
  • PHP - preg_match - 如何将字符串大写/小写与其之前或之后的任何内容匹配?

    我有一个函数的一部分 如下所示 if preg match bscript b userInput bannedWord script logHax return TRUE 这给我想要完成的任务带来了问题 因为它只会匹配确切的单词 scri
  • C# 自定义属性必需如果

    我刚刚开始接触自定义属性 我非常喜欢它们 我想知道是否可以创建一个应用于属性并表示同一对象中另一个属性的名称的属性 如果会检查引用的属性是否有值 如果有 则需要装饰属性 像这样的东西 RequiredIfNotNull ApprovedDa
  • 距某一点最近的地点

    我有下表 create table places lat lng point place name varchar 50 insert into places values POINT 126 4 45 32 Food Bar 要获取靠近特
  • toDF 的值不是 org.apache.spark.rdd.RDD 的成员

    我在其他帖子中读到过这个问题 但我仍然不知道我做错了什么 原则上 添加这两行 val sqlContext new org apache spark sql SQLContext sc import sqlContext implicits
  • 拍照后如何从 ImageView 保存图像

    我从图库中挑选照片或用相机拍摄 如果我将图片放入 imageView 中 然后单击确认按钮 我该如何保存该图片 我必须使用 saveState 吗 请发表一些评论 谢谢 protected void onActivityResult int
  • 错误页面上的错误报告表格

    我在 JBoss 7 1 和 Richfaces 4 1 中有一个 JSF Web 应用程序 我尝试在 web xml 中配置自定义错误页面 但遇到了问题 这不适用于 AJAX 请求 作为我尝试使用的解决方案Omnifaces FullAj
  • 空无限循环和GC(JVM)。请说明一下效果

    我的空无限循环 public static void main String args while true And profiling in Java VisualVM picture 正如你所看到的 我不创建对象 为什么要改变堆 请解释
  • 对于给定的密码和盐,Python 不会派生出与 Keycloak 或在线密码哈希器相同的哈希键

    我的用例是我需要将一些密码从 Keycloak 迁移到 Django 我在 Keycloak 上的示例密码是 qwerty123 Keycloak DB中生成的对应哈希是这样的 value PQzhC1QBMBHY wBUZB4iWV0jt
  • 使用 libcurl 下载目录中的所有文件

    我是 libcurl 的新手 找到了一种从 ftp 服务器下载单个文件的方法 现在我的要求是下载目录中的所有文件 我猜 libcurl 不支持它 请建议 libcurl 如何下载目录中的所有文件 或者是否有其他类似于 libcurl 的库