2015-07-22 3 views
0

У меня есть файл в моем хранилище Dropbox. Как я могу получить его атрибуты, такие как время создания с использованием URL-адреса? Возможно ли это? Мои усилия:Получить атрибуты файлов по 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()); 

    } 

Console говорит:

Исключение в потоке "основного" java.nio.file.NoSuchFileException: \ s \ pumsh8ns1nvprb9 \ kazan.zip

ответ

1

I подумайте, что вы неправильно поняли класс File. Он должен ссылаться на файл или каталог.

Хотя вы можете создать новый объект File, используя URI, протокол (как Javadoc говорит http://docs.oracle.com/javase/7/docs/api/java/io/File.html#File(java.net.URI)) должен быть файл:, не HTTP, так что я не уверен, что вы будете иметь возможность читать свойства файла таким образом.

Может быть, вы должны загрузить файл во временный файл (File.createTempFile, deleteOnExit()), а затем прочитать атрибуты.

Другое решение использует API Dropbox (https://www.dropbox.com/developers/core/docs#metadata).

Или его Java API(): http://dropbox.github.io/dropbox-sdk-java/api-docs/v1.7.x/com/dropbox/core/DbxClient.html#getMetadata%28java.lang.String%29

+0

Файл большой, поэтому загрузка не является решением проблемы. – Tony

+0

Да, я знаю это, но вы не можете читать атрибуты файлов удаленно. –

+0

Используйте API Dropbox для доступа к метаданным файла, ответьте на него. –

0

Вы можете использовать Apache Commons-Ио, только один линейный код:

FileUtils.copyURLToFile(URL, File) 
+0

Проблема в том, что он не хочет загружать файл –

Смежные вопросы