java通过URL获取文件属性
我的dropbox存储器里有一个文件。如何使用URL获取其属性(如创建时间)?这可能吗? 我的努力:
public static void main(String[] args) throws IOException, InterruptedException, URISyntaxException {
URL url=new URL("http://www.dropbox.com/s/pumsh8ns1nvprb9/kazan.zip?dl=1");
File file = new File(url.getPath());
Path path = file.toPath();
BasicFileAttributes attr = Files.readAttributes(path, BasicFileAttributes.class);
System.out.println("creationTime: " + attr.creationTime());
System.out.println("lastAccessTime: " + attr.lastAccessTime());
System.out.println("lastModifiedTime: " + attr.lastModifiedTime());
}
控制台说:
Exception in thread "main" java.nio.file.NoSuchFileException: \s\pumsh8ns1nvprb9\kazan.zip
# 1 楼答案
您可以使用apache commons io,只需一行代码:
# 2 楼答案
我想你误解了档案课。它必须引用一个文件或目录
虽然可以使用URI创建新的文件对象,但协议(正如javadoc所说http://docs.oracle.com/javase/7/docs/api/java/io/File.html#File(java.net.URI))必须是文件:,而不是http,因此我不确定您是否能够以这种方式读取文件的属性
可能您应该将该文件下载到临时文件(file.createTempFile,deleteOnExit())中,然后读取属性
另一个解决方案是使用Dropbox API(https://www.dropbox.com/developers/core/docs#metadata)
或者它的Java API(https://github.com/dropbox/dropbox-sdk-java):http://dropbox.github.io/dropbox-sdk-java/api-docs/v1.7.x/com/dropbox/core/DbxClient.html#getMetadata%28java.lang.String%29