如果我有文件的 URL,如何在不下载文件的情况下获取文件属性(例如日期)。
我必须实施更新检查器。为此,我将比较两个文件的日期。一个是本地的,第二个是相同的文件,但服务器上的最新日期。我知道第二个文件的 URL。
请给我一个平静的建议 - 如何在不下载的情况下检查第二个文件的日期?
我考虑过通过哈希进行比较,但我需要检查服务器上的文件是否是最新版本?
如果我有文件的 URL,如何在不下载文件的情况下获取文件属性(例如日期)。
我必须实施更新检查器。为此,我将比较两个文件的日期。一个是本地的,第二个是相同的文件,但服务器上的最新日期。我知道第二个文件的 URL。
请给我一个平静的建议 - 如何在不下载的情况下检查第二个文件的日期?
我考虑过通过哈希进行比较,但我需要检查服务器上的文件是否是最新版本?
检查远程文件的属性并不容易。此行为未在 URL 规范中指定。
所以这应该得到目标协议的支持。请注意,并非所有协议都支持这一点。假设 HTTP 不支持这一点,而 FTP 和 CIFS 支持。
一旦你确定你的目标协议确实支持这个特性,你需要传递协议的规范来做到这一点。因此,如果您使用的是 FTP,请寻找这样的库,ftp4j
这样您就不必自己实现 FTP 客户端。
更新
开箱即用的 HTTPS 不支持此功能。您需要配置删除 Web 服务器以公开所需的版本控制数据。假设您可以将(或编写脚本来执行此操作)所有版本控制信息放在单独的文本文件中。然后,您可以获取此文件并检查您需要的版本。
最良好的祝愿!
要检查文件日期,您可以使用此代码片段
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.
}
使用日期、大小、名称等属性可以识别资源。