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

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

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

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

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

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

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. } 

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

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

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

一旦确定目标协议确实支持此function,就需要根据协议的规范进行中继来执行此操作。 因此,如果您使用FTP,请查找像ftp4j这样的库,这样您就不会自己实现FTP客户端。

UPDATE

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

最好的祝愿!