[Project_owners] Get timestamp of a remote file?

Patrick Brunschwig patrick.brunschwig at gmx.net
Fri Jan 6 16:55:03 EST 2006


Dan Lee wrote:
> Does anyone know of a way to get the timestamp for a remote file?
> 
> For our project ReminderFox we have code to download/upload a calendar
> file via FTP or WebDAV.  We would like to do this automatically and be
> smart about it -- that is, only have to download the remote calendar
> file if it actually differs from the file on the local system. I thought
> the best way would be to check the timestamp of the remote file, but I
> am not sure how this can be done.
> For downloading the file, I was utilizing code of this sort:
> 
> var ioService  =
> Components.classes["@
> mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService)<http://mozilla.org/network/io-service;1%22%5D.getService%28Components.interfaces.nsIIOService%29>
> ;
> this.streamLoader=Components.classes["@
> mozilla.org/network/stream-loader;1"].createInstance(Components.interfaces.nsIStreamLoader)<http://mozilla.org/network/stream-loader;1%22%5D.createInstance%28Components.interfaces.nsIStreamLoader%29>
> ;
> this._channel = ioService.newChannelFromURI( aURI );
> if(aURI.scheme=="http" || aURI.scheme=="https")
>  this._channel.loadFlags |=
> Components.interfaces.nsIRequest.LOAD_BYPASS_CACHE;
>  this.streamLoader.init(this._channel, this , null);
> 
> Since it's just dealing with streams, I am not sure if there's any way
> to get the timestamp of the file that the stream was created from.  Has
> anyone done anything similar or having any ideas of how I could do this?

I don't know precisely how you want to do this, but you have to be quite
careful if want to work based on timestamps of a remote server. The
remote server might have a different system time than your local PC
(e.g. wrong time). Depending on the implementation, this could lead to a
situation where you would not notice that file was updated.

-Patrick


More information about the Project_owners mailing list