我的保管箱存储中有一个文件。如何使用 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.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
关于java - 通过URL获取文件属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31557945/