1

我正在尝试获取 Unix 服务器中存在的文件属性,当我在 IE 中键入此 url 时,它会显示文件文件夹目录体系结构中的文件。

我打算为一个工具编写一个代码,这样我就可以自动化获取文件属性的过程,比如文件修改日期、文件大小等。

有什么方法/方法可以做到这一点吗?此代码是否有效:

File file = New File("http://<someserver.com>:<portnumber>/logs/log.txt");
Date date = file.LastModifiedDate();
System.out.println("modifed date is"+date);
4

2 回答 2

1

如果您的服务器支持的协议只有 HTTP,恐怕没有简单的方法可以做到这一点。你不得不:

  • 解析返回的 HTML,可能正在寻找<a href=标签(使用一些html 解析器,但不使用正则表达式)
  • 打开这些链接new URL(url).openConnection(),读取它们的流,然后递归地做同样的事情,直到找到一个实际的文件(而不是目录)。

但这不会为您提供文件属性 - 只有名称和文件内容。

如果要浏览,则需要不同的协议,例如FTPSCP

于 2010-11-11T06:06:22.227 回答
0

HTTP 协议在这里帮不了你。HTTP 不发布任何文件属性,除了Content-length(文件大小)和Last-Modified不一定反映实际文件修改日期的标头值。此外,它可能根本不会由 HTTP 服务器发送。

您最好的选择是使用 FTP 库,例如来自Apache Commons Net的库。

如果您决定使用这个库,您可以使用FTPFile的属性,例如文件大小、文件日期和权限。

于 2010-11-11T11:08:45.503 回答