【问题标题】:how to zip a folder at FTP location using FTPClient in java如何在java中使用FTPClient压缩FTP位置的文件夹
【发布时间】:2012-11-06 17:32:17
【问题描述】:

我想压缩一个文件夹,其中包含一些文件并且存在于 ftp 位置。如何在 FTP 位置压缩文件夹。

 FTPClient ftp = new FTPClient();
 ftp.connect(hostname);
 ftp.login(user, pass);
 ftp.changeWorkingDirectory("myfolder"); //I wanted to zip this "myfolder"

谢谢。

【问题讨论】:

    标签: java ftp zip directory


    【解决方案1】:

    FTP 只处理文件传输。因此,您可以下载或上传文件,但仅此而已。如果你想压缩一些东西,你必须把它下载到你控制的机器上并在那里压缩。或者,您可以使用其他协议来访问机器(ssh / 远程桌面 / telnet / 你实现的任何东西)并远程压缩它,但这不会通过 FTP。

    【讨论】:

      【解决方案2】:

      查看list of FTP protocol commands - 那里没有关于 ZIP 的内容。而FTPClient 只能做 FTP 协议能做的事情。你要做的是:

      • 下载要压缩的文件夹的内容
      • 本地压缩
      • 上传,可选择删除原始文件夹

      当然,您可以将其包装在代码/库中的伪 FTP 命令中。

      【讨论】:

      • 感谢大家的帮助。在我的 Eclipse 中,我可以提供本地文件路径来下载文件为 C:\myfolder。但是如果我在某个实例上部署我的应用程序,它将无法理解我的 C:\myfolder,在这种情况下,我将如何提供此路径?
      • @user1833983:只需创建一个临时目录,无论它在哪里,请参阅:stackoverflow.com/questions/617414
      【解决方案3】:

      虽然下载文件、在本地压缩文件和上传文件的过程完全按照您的意愿进行,但这可能需要很长时间,具体取决于您的连接速度。

      如果您对机器有 SSH 访问权限,我强烈建议您使用它。 您可以使用 Java 的 SSH 库(如 SSHJ)并在文件夹上运行 zip 命令。 这将使服务器在本地压缩文件,这会更快。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-04-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多