2

如果我有文件的 URL,如何在不下载文件的情况下获取文件属性(例如日期)。

我必须实施更新检查器。为此,我将比较两个文件的日期。一个是本地的,第二个是相同的文件,但服务器上的最新日期。我知道第二个文件的 URL。

请给我一个平静的建议 - 如何在不下载的情况下检查第二个文件的日期?

我考虑过通过哈希进行比较,但我需要检查服务器上的文件是否是最新版本?

4

2 回答 2

0

检查远程文件的属性并不容易。此行为在 URL 规范中指定。

所以这应该得到目标协议的支持。请注意,并非所有协议都支持这一点。假设 HTTP 不支持这一点,而 FTP 和 CIFS 支持。

一旦你确定你的目标协议确实支持这个特性,你需要传递协议的规范来做到这一点。因此,如果您使用的是 FTP,请寻找这样的库,ftp4j这样您就不必自己实现 FTP 客户端。

更新

开箱即用的 HTTPS 不支持此功能。您需要配置删除 Web 服务器以公开所需的版本控制数据。假设您可以将(或编写脚本来执行此操作)所有版本控制信息放在单独的文本文件中。然后,您可以获取此文件并检查您需要的版本。

最良好的祝愿!

于 2012-09-03T15:07:34.707 回答
0

要检查文件日期,您可以使用此代码片段

try {
  URL url = new URL(inputFile);
  URLConnection urlConnection = url.openConnection();
  System.out.println("Date= "+new Date(urlConnection.getLastModified()));
  System.out.println("Size= "+urlConnection.getContentLength());

} catch (MalformedURLException e1) {
  e1.printStackTrace();  //Todo change body of catch statement.
} catch (IOException e1) {
  e1.printStackTrace();  //Todo change body of catch statement.
}

使用日期、大小、名称等属性可以识别资源。

于 2012-09-03T17:54:14.727 回答