I've a function to download a file from a remote URL (using Java). Now I want to know the real modified date, because when I download it I lost this info. Thanks in advance.
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.");
}
}
Any decent webserver will put this information in the
Last-Modified
response header. You can obtain it byURLConnection#getHeaderField()
. Here's an examplewhich prints as of now
This is easy convertable to a
Date
object usingSimpleDateFormat
:Zip the folder with your files before downloading, then download the zip folder and unzip it there. This will preserve the modified and created dates. I don't know if this answer is in your context.