【问题标题】:Is there any way to access http://<someserver.com>:<portnumber>/logs.log.txt using Java code in windows有什么方法可以在 windows 中使用 Java 代码访问 http://<someserver.com>:<portnumber>/logs.log.txt
【发布时间】:2011-05-08 06:54:04
【问题描述】:

我正在尝试获取 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);

【问题讨论】:

  • unix 服务器是作为映射驱动器使用还是仅通过 http 提供?
  • unix服务器中的文件只能通过http访问..文件名,最近修改的日期,大小被推送到apache服务器并显示在web应用程序中,我可以查看文件中的文件-当我在 IE 中输入 url 时的文件夹目录格式。

标签: java windows fileserver file-attributes


【解决方案1】:

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

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

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

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

【讨论】:

  • 谢谢 Bozho :) 我会处理这个,但我的主要目标是提取文件修改日期..:)
【解决方案2】:

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

最好的办法是使用 FTP 库,例如来自 Apache Commons Net 的库。

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

【讨论】:

  • 是否可以使用 FTPFile 类从 unix 服务器中提取文件修改日期??
  • 只需阅读文档:返回文件时间戳。这通常是最后一次修改时间。
猜你喜欢
  • 1970-01-01
  • 2019-11-05
  • 2015-08-20
  • 1970-01-01
  • 1970-01-01
  • 2011-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多