1

我正在使用 Apache Commons VFS / SFTP,我们正在尝试从 IBM MVS 系统下载文件。

下载部分很好,但是下载后我们无法打开压缩文件。似乎 zip 文件是使用不同的算法或其他东西压缩的

有人有任何指示吗?

*注意,如果我们连接到常规的 unix/linux SFTP 服务器,同样的功能可以正常工作。

下面是我们所做的一个例子

                    String defaultHost = "[my sftp ip address]";
                    String host = defaultHost;
                    String defaultRemotePath = "//__root.dir1.dir2.";
                    String remotePath = defaultRemotePath;
                    String user = "test";
                    String password = "test";
                    String remoteFileName = "Blah.ZIP.BLAH";

                    log.info("FtpPojo() begin instantiation");
                    FileObject localFileObject = fsManager.resolveFile("C:/Work/Blah.ZIP.BLAH");
                    log.debug("local file name is :"+localFileObject.getName().getBaseName());
                    log.debug("FtpPojo() instantiated and fsManager created");

                    String uri = createSftpUri(host, user, password) + ":322"+remotePath+remoteFileName;
                    remoteRepo = fsManager.resolveFile(uri, fsOptions);
                    remoteRepo.copyFrom(localFileObject, Selectors.SELECT_ALL);
4

2 回答 2

0

有几件事可以尝试:

指定 BINARY 选项,因为我认为默认值是 EBCDIC-ASCII 转换。这会对 zip 文件造成可怕的影响。如果您可以下载纯文本文件,那可能是您的麻烦。

压缩数据可能是您的系统不喜欢的东西,例如 PDS?

阅读此页面http://www.cbttape.org/downloadtrouble.htm

于 2010-05-26T14:19:47.650 回答
0

我不是大型机专家,但我假设您连接的不是 MVS,而是运行 FTP 或 SSH 守护程序的 USS(Unix 系统服务)。我只尝试通过 FTP 从 USS 下载文件,而普通的 Windows FTP 可以很好地交换和打开文件。没有二进制。因此,我不认为你会得到 EBCDIC 编码的文件。

您是否尝试过下载简单的文本文件?您是否尝试过下载带有特殊字符的文本文件?例如德语变音符号或其他非ASCII?

于 2010-05-18T07:32:09.117 回答