我的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());
}
控制台说:
线程“main”中的异常java.nio.file.NoSuchFileException: \ S \ pumsh8ns1nvprb9 \ kazan.zip
答案 0 :(得分:1)
我认为你误解了File类。它必须引用文件或目录。
虽然您可以使用URI创建新的File对象,但协议(如javadoc所说http://docs.oracle.com/javase/7/docs/api/java/io/File.html#File(java.net.URI))必须是 file:,而不是 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
答案 1 :(得分:0)
您可以使用apache commons-io,只需一行代码:
FileUtils.copyURLToFile(URL, File)