【发布时间】:2019-11-20 22:12:39
【问题描述】:
我正在使用 FTPClient 从我的 FTP 服务器下载文件,它充满了 zip 文件夹,其中包含一个到多个 .txt 文件。它们的大小可能很大,例如 ... 10GB。
我想要做的是在不从 FTP 下载 zip 存档的情况下读取它拥有的第一个 .txt 文件的名称。保证其中至少有 1 个.txt 文件。
我阅读了一篇非常有趣的文章 here,但它在 .NET 中,他们使用的远程 URL 与我的情况不同。
zip 格式定义了某种指向其所有内部条目的目录。包含名称、起始偏移量、大小和其他内容等属性。而且这个目录很小,只有几个字节放在存档的最后。
如何使用 FTPCient 解决它?
【问题讨论】:
-
我会使用JSch之类的东西来建立SSH连接并执行一些shell命令来读取ZIP文件的内容。
-
这不是矫枉过正吗?我们有普通的 FTP 。我不能以某种方式从 zip 中读取一些字节,告诉我哪个是第一个条目。
-
当您声明 ZIP 目录位于存档的最末尾时,如果不阅读它之前的所有内容,您将无法阅读它。这肯定很明显吗?
-
@user207421 这是一个 ftp 服务器,其中包含许多
.zip folders每个 .zip 文件夹都包含一些 .txt 文件。我想从 ftp 服务器的第一个 .zip 文件夹中读取第一个条目,而不需要下载它。我在下面发布了关于我如何做到这一点的答案。你能告诉我我的解决方案是否适用于非常大的文件吗?
标签: java zip ftp-client