如何获取文件属性而不下载
如果我有文件的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服务器以公开所需的版本控制数据。 假设您可以在单独的文本文件中放置(或编写脚本来执行此操作)所有版本控制信息。 然后,您可以获取此文件并检查所需的版本。
最好的祝愿!
- HttpURLConnection即使在setDoOutput(true)之后执行get请求,setRequestMethod(“POST”)setRequestProperty(“Content”
- 读取输入后无法写入输出
- 如何重用HttpUrlConnection?
- Android:如何使用HttpsURLConnection以编程方式登录网页
- 使用HttpURLConnection到PHP的POST文件
- JAVA中带有JSON字符串的HTTP POST请求
- 通过HttpURLConnection发送UTF-8字符失败
- 如何在java中处理阿拉伯语
- 如何使用HttpURLConnection和Java中的CookieManager为每个连接使用不同的cookie