有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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


共 (2) 个答案

  1. # 1 楼答案

    您可以使用apache commons io,只需一行代码:

    FileUtils.copyURLToFile(URL, File)
    
  2. # 2 楼答案

    我想你误解了档案课。它必须引用一个文件或目录

    虽然可以使用URI创建新的文件对象,但协议(正如javadoc所说http://docs.oracle.com/javase/7/docs/api/java/io/File.html#File(java.net.URI))必须是文件:,而不是http,因此我不确定您是否能够以这种方式读取文件的属性

    可能您应该将该文件下载到临时文件(file.createTempFiledeleteOnExit())中,然后读取属性

    另一个解决方案是使用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