Есть ли способ получить доступ к http://<someserver.com>:<portnumber>/logs.log.txt с помощью кода Java в Windows - PullRequest
1 голос
/ 11 ноября 2010

Я пытаюсь получить атрибуты файла на сервере Unix, и когда я набираю этот URL в моем IE, он отображает файлы в архитектуре file-folder-directory.

Я планирую написать коддля такого инструмента, чтобы я мог автоматизировать процесс получения атрибутов файла, таких как дата изменения файла, размер файла и т. д.

Есть ли какие-либо методы / способы сделать это?Работает ли этот код:

File file = New File("http://<someserver.com>:<portnumber>/logs/log.txt");
Date date = file.LastModifiedDate();
System.out.println("modifed date is"+date);

Ответы [ 2 ]

1 голос
/ 11 ноября 2010

Если протокол, который поддерживает ваш сервер, является только HTTP, я боюсь, что нет простого способа сделать это.Вам нужно будет:

  • проанализировать возвращенный HTML, вероятно, ища <a href= теги (используя некоторый html-анализатор , но не с регулярным выражением)
  • openэти ссылки с new URL(url).openConnection(), читают их потоки и делают то же самое рекурсивно, пока не будет найден фактический файл (а не каталог).

Но это не даст вам атрибуты файла -только имя и содержимое файла.

Если вы хотите просмотреть, вам нужен другой протокол, например FTP или SCP .

0 голосов
/ 11 ноября 2010

Протокол HTTP вам здесь не поможет. HTTP не публикует никаких атрибутов файла, за исключением значения Content-length (размер файла) и значения заголовка Last-Modified, которое не обязательно отражает фактическую дату изменения файла. Также он может вообще не отправляться HTTP-сервером.

Лучше всего использовать библиотеку FTP, например, из Apache Commons Net .

Если вы решите использовать эту библиотеку, вы можете использовать свойства FTPFile класса , например размер файла, дату файла и разрешения.

...