检查主机FTP服务器上的路径是文件还是文件夹



我有一个Java代码,它将文件从大型机上的FTP传输到本地系统。问题是如何判断给定的路径是文件还是文件夹?我不能使用扩展检查,因为我不知道可能的扩展可以是什么。下面的代码总是返回false,

 fileSystem.isFile("fileName");

作为大型机文件系统,路径由.而不是/分隔,因此在最后检查.也不起作用。

我再次使用 将数据从输入路径流到输出位置
url="connection url of the mainframe"
bufferedInputStream = new BufferedInputStream(url.getInputStream());

当源路径有文件时,它将文件的内容写入目标,当源路径有目录时,它将该目录下文件的名称和其他属性写入目标。

当源是目录时的输出示例为

Name    VV.MM   Created       Changed          Size  Init    Mod    Id
QQQQ    01.00  2009/12/18   2009/12/18 12:15    18    18     0    XXXX 
RRRR    01.00  2009/12/18   2009/12/18 12:16     19     19    0  XXXXX

如何确定源路径是文件还是文件夹?

我没有答案,但听起来你正在访问Zos。对于那些不这样做的人

  • Zos 没有目录
  • 他所说的目录可能是PDS(参见数据集中的PDS)。对于那些没有大型机背景的人来说,把它看作是一种归档(即jar, Tar, zip等)。这不是一个完全准确的描述,PDS有一些局限性& &;不使用jar文件,但jar文件是我能想到的最接近PC, *NIX世界的类比。

  • 你如何检测它们-不确定,可能有一个文件属性你可以访问

我找到了一种方法来确定主机上的路径是文件还是PDS(类似于目录)。我使用了org.apache.hadoop.fs.ftp.FTPFileSystem库,下面的代码片段可以通过返回文件列表来工作。

FTPFile[] files = ftp.listFiles(); 

循环files并检查file1.isFile()就足够了。再次记住,在使用ftp.cwd(inputPath);

列出文件之前,要更改到当前工作目录

关于大型机文件系统的解释请参考Bruce Martin的回答和后面的评论

你不能说你使用的是什么版本的java,或者你是否为主机文件系统使用了一个特殊的库。

可以用java.io.File#isDirectory()代替吗?

相关内容

  • 没有找到相关文章

最新更新