如何获取文件属性而不下载

时间:2012-09-03 15:00:46

标签: java file url properties httpurlconnection

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

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

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

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

2 个答案:

答案 0 :(得分:0)

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

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

一旦确定目标协议确实支持此功能,您需要根据协议的规范进行中继以执行此操作。因此,如果您使用的是FTP,请查找ftp4j之类的库,以便您自己没有实现FTP客户端。

<强>更新

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

祝福!

答案 1 :(得分: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.
}

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