java - 通过URL获取文件属性

标签 java file 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

最佳答案

我认为您误解了 File 类。它必须引用文件或目录。

虽然您可以使用 URI 创建新的 File 对象,但协议(protocol)(如 javadoc 所说 http://docs.oracle.com/javase/7/docs/api/java/io/File.html#File(java.net.URI) )必须是 file:,而不是 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

关于java - 通过URL获取文件属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31557945/

相关文章:

java - 如何测试使用 LocalDateTime.now() 创建的日期

c++ - 删除 fopen 成功创建的文件时权限被拒绝

java - grails 应用程序中的 "Too many open files"- 如何正确关闭打开的文件和流?

java - file.mkdirs() 不起作用

linux - 使用 Linux 将项目文件夹链接到 dropbox 文件夹

java - Java 初学者 - 为什么此 Java 代码无法识别 : what do I need for Math. sqrt?

java - 方法参数中的final关键字不改变

java - 如何在jpql中为in-clause设置集合项?

iphone - 应用程序内的 Dropbox 身份验证

android - 视频无法使用 Android 的原生 MediaPlayer 播放,但可以使用 Dropbox 的视频播放器播放