有没有人使用的ftp.changeWorkingDirectory
命令大型机数据集。当有一个数据集此命令返回true。当没有数据集也将返回true。如果您有任何您用来处理大型数据集,你可以分享任何样本Java的FTP代码。这里是我有一个不工作的代码。
public static FTPFile[] GetListOfMembersFromPDS(String pdsname, String serverN) {
FTPSClient ftp = FTPConnect(serverN);
FTPFile[] files = null;
boolean success = false;
try {
success = ftp.changeWorkingDirectory(pdsname);
if (!success) {
throw new IOException("Unable to change working directory to " + pdsname
+ " for ftp transfer with ftp client = " + ftp + ". " + ftp.getReplyString());
}
} catch (IOException e) {
e.printStackTrace();`enter code here`
}
System.out.println(success);
try {
files = ftp.listFiles();
} catch (IOException e) {
e.printStackTrace();
}
return files;
}
改变工作目录中的z / OS数据集环境一般会返回true,除非你指定一个限定词太长,或全名太长。这并不表示工作目录的存在与否,作为大型数据集不上的目录结构的工作。
如果更改为一个尚不存在的“工作目录”,你会得到这样的回应:
250 “THIS.IS.THE.WORKING.DIRECTOR。”是工作目录名的前缀。
如果您使用的名称是无效的尝试,你会得到错误的。
501“THIS.IS.THE.WORKING.DIRECTORY” A限定符是超过8个字符
如果你是名过长的尝试,你会得到错误的。
501无效的目录名 - 太大。
所以,依靠从changeWorking Directory中的布尔将无法正常工作。你需要看看回复字符串与“getReplyString()”方法,然后分析它。
一个LOADLIB PDS会说像250的工作目录可能是一个加载库250的工作目录“GAME.LOADLIB”是一个分区数据集
非LOADLIB PDS只想说
250工作目录“GAME.COBOL”是一个分区数据集。
listFiles,listDirectories和ListNames有不同的行为了。
我有一些数据集,其是GAME.SRCE,GAME.COPYLIB,GAME.LOADLIB和GAME.LOADLIB.PDSE的。他们都是分区的数据集。如果更改目录游戏,做listNames(),你得到所有4.如果listFiles或listDirectories,你只能得到COPYLIB和SRCE。如果更改目录GAME.SRCE,那么所有三种方法将列出所有成员。如果更改目录GAME.LOADLIB,那么只有listNames将列出成员。你也不知道GAME.LOADLIB.PDSE存在。
这是使用Apache的共享,公共净3.6.jar和z / OS完成。
这里有一个简单的例子,我发现通过搜索。你应该看到成功= false如果该目录不能更改:
// Change working directory
success = ftp.changeWorkingDirectory(pdsname);
String[] replies = ftp.getReplyStrings();
if (replies != null && replies.length > 0) {
for (String aReply : replies) {
System.out.println("SERVER: " + aReply);
}
}
if (success) {
System.out.println("Successfully changed working directory.");
} else {
System.out.println("Failed to change working directory to " + pdsname + ". See server's reply.");
}