Finding the Last Modified Date on a File
Published on January 11, 2007
By Pete Freitag
By Pete Freitag
This question came up on my local CFUG mailing list yesterday:
how can I get the time last updated of the two documents? I know you can do this with uploaded files using FILE.TimeLastModified. Is there anyway to do it with existing files? I know I could do a hack with CFDIRECTORY where I loop through the files in the directory looking for the one I'm interested in and then getting the dateLastModified on that, but I'm thinking there has to be a more direct way.
You can use java's File class to get the lastModified timestamp:
<cfset myFile = CreateObject("java", "java.io.File")> <cfset myFile.init("/path/to/file")> <cfset last_modified = myFile.lastModified()>
Finding the Last Modified Date on a File was first published on January 11, 2007.
If you like reading about java, coldfusion, file, or cfdirectory then you might also like:
- Spring4Shell and ColdFusion
- Log4j CVE-2021-44228 Log4Shell Vulnerability on ColdFusion / Lucee
- URL Safe Base64 Encoding / Decoding in CFML
- Updating Java on ColdFusion or Lucee
The FuseGuard Web Application Firewall for ColdFusion & CFML is a high performance, customizable engine that blocks various attacks against your ColdFusion applications.
CFBreak
The weekly newsletter for the CFML Community
Comments
If you don't want to be dependent on Java you can use <cfdirectory>, specify a filter that is the file name and a query of queries on the result to match the actual file (fix due to wildcards in file name).
No need to loop. :)
Its slower, but more portable.
No need to loop. :)
Its slower, but more portable.
by Elliott on 01/11/2007 at 3:45:50 PM UTC
Well, you don't exactly have to loop through it. Can't you just query it?
by Sam on 01/11/2007 at 3:59:22 PM UTC
Hi
I want to display last modified date in HTML page.
I want to display last modified date in HTML page.
by Navin on 06/15/2007 at 8:53:24 AM UTC
Do I use the absolute path (ie., d:/..a.js) and I'm getting a number (ie., 1178038419822 ). Why?
by Patrick Whittingham on 07/26/2007 at 11:00:14 AM UTC
you may try this:
File file = new File(filename);
long time = file.System.currentTimeMillis();
boolean success = file.setLastModified(newModifiedTime);
if (!success) {...}
// operation failed.
File file = new File(filename);
long time = file.System.currentTimeMillis();
boolean success = file.setLastModified(newModifiedTime);
if (!success) {...}
// operation failed.
by bruce on 02/20/2008 at 7:48:06 PM UTC
Documentation says:
Returns the time that the file denoted by this abstract pathname was last modified.
Returns:
A long value representing the time the file was last modified, measured in milliseconds since the epoch (00:00:00 GMT, January 1, 1970), or 0L if the file does not exist or if an I/O error occurs
I suppose you'd have to compare it at the ms level in that case -
<cfset y = datediff('s','00:00:00 January 1, 1970',now())*1000/>
Returns the time that the file denoted by this abstract pathname was last modified.
Returns:
A long value representing the time the file was last modified, measured in milliseconds since the epoch (00:00:00 GMT, January 1, 1970), or 0L if the file does not exist or if an I/O error occurs
I suppose you'd have to compare it at the ms level in that case -
<cfset y = datediff('s','00:00:00 January 1, 1970',now())*1000/>
by Kevin penny on 04/17/2008 at 2:44:20 PM UTC
Actually, this works better as it takes into account your local timezone difference between your server and GMT.
<cfset y = datediff('s',LSParseDateTime('January 1, 1970 00:00:00 AM GMT'),now())*1000/>
This will convert the Base Jan 1970 time into MS where you can then use simple math to do your comparisons at the MilliSeconds level.
<cfset y = datediff('s',LSParseDateTime('January 1, 1970 00:00:00 AM GMT'),now())*1000/>
This will convert the Base Jan 1970 time into MS where you can then use simple math to do your comparisons at the MilliSeconds level.
by Kevin Penny on 04/17/2008 at 3:32:12 PM UTC
Pete, I'm trying to get the image last modified date from a *remote* image (things on imgur.com) for which I do have the direct link to the image but don't have it on my server. Is there a way to do that? This Q&A seems to assume on local/uploaded files.
by PJ on 09/20/2018 at 4:16:25 AM UTC
There is also the filter attribute to cfdirectory that would negate the need to loop over and look for the file. Still I think the Java File solution is better.