【问题标题】:Speed up recursively listing FTP files加速递归列出 FTP 文件
【发布时间】:2018-05-14 14:07:18
【问题描述】:

我有一个 Android 应用程序,其中列出了 FTP directory 的文件夹和文件。我用 Apache Commons FTP Client。归结为我为每个文件夹调用的这一行

FTPFile[] folderElements = ftpClient.listFiles(folderName);

工作正常,但非常耗时。整个任务(获取所有文件和文件夹)大约需要一分钟。我可以以某种方式加快速度吗?

我已经试过了

ftpClient.setBufferSize(1024000);

【问题讨论】:

  • 加快速度的唯一方法是使用多个并行连接。
  • 一个电话需要一分钟吗?
  • 否:整个任务(获取所有文件和文件夹)大约需要一分钟
  • 你赏金的目的是什么?您是否期待一些新方法(除了已经建议的并行化)?还是您希望有人为您编写代码?
  • @MartinPrikryl:每个赏金都有描述。我的也是。而且我并不特别期待任何事情。

标签: java android ftp apache-commons-net


【解决方案1】:

我的项目可能会有所帮助。 https://github.com/Honwhy/commons-pool-ftp(见 ftpcp 分支)

FTPCPManager ftpCPManager = new FTPCPManager();
ftpCPManager.setUrl("ftp://127.0.0.1");
ftpCPManager.setUsername("sa");
ftpCPManager.setPassword("sa");
ftpCPManager.setKeepAliveTimeout(1 * 60);

ftpCPManager.setConnectTimeout(1 * 1000);
ftpCPManager.setMaxWait(1 * 1000);

CommonFAOSupport support = new CommonFAOSupport(ftpCPManager);

support.downloadDirectory("/apps/data/ftp/download", 4000, 10, processService); //10 thread

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多