Как получить дату изменения из удаленного файла (Java)? - PullRequest
2 голосов
/ 10 марта 2010

У меня есть функция для загрузки файла с удаленного URL (используя Java). Теперь я хочу узнать реальную дату изменения, потому что когда я загружал ее, я терял эту информацию. Заранее спасибо.

public void downloadFile(String remoteFile, String localFile)
        throws IOException {
    BufferedInputStream in;
    try {
        URL url = new URL(remoteFile);


        in = new BufferedInputStream(url.openStream());
        FileOutputStream fos = new FileOutputStream(localFile);
        BufferedOutputStream bout = new BufferedOutputStream(fos, 1024);
        byte data[] = new byte[1024];
        int count = 0;
        while ((count = in.read(data, 0, 1024)) > 0) {
            bout.write(data, 0, count);
        }
        bout.close();
        in.close();
        log.write(remoteFile + " - Download Successful.");
        //System.out.println(remoteFile + " - Download Successful.");
    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (IOException e) {
        log.write("The file " + remoteFile + " doesn't exist.");
        //System.out.println("The file " + remoteFile + " doesn't exist.");
    }
}

Ответы [ 2 ]

11 голосов
/ 10 марта 2010

Любой приличный веб-сервер поместит эту информацию в заголовок ответа Last-Modified. Вы можете получить его по URLConnection#getHeaderField(). Вот пример

URLConnection connection = new URL("http://sstatic.net/so/img/logo.png").openConnection();
String lastModified = connection.getHeaderField("Last-Modified");
System.out.println(lastModified);

который печатает на данный момент

Sun, 17 Jan 2010 18:29:31 GMT

Это легко конвертируется в Date объект, используя SimpleDateFormat:

Date date = new SimpleDateFormat("E, d MMM yyyy HH:mm:ss Z", Locale.ENGLISH).parse(lastModified);
1 голос
/ 27 декабря 2012

Перед загрузкой заархивируйте папку с файлами, затем загрузите папку zip и разархивируйте ее там. Это сохранит измененные и созданные даты. Я не знаю, если этот ответ в вашем контексте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...