Question

I am able to copy a file in node.js using the following:

            var readStream = fs.createReadStream(fromFilePath);
            readStream.pipe(fs.createWriteStream(toFilePath));

The question is how to also copy/keep the modified time (mtime) like in a regular file copy command.

Was it helpful?

Solution

There are methods in the fs module to access mtime:

var stat = fs.statSync(fromFilePath);
fs.utimesSync(toFilePath, stat.atime, stat.mtime)

OTHER TIPS

Use https://nodejs.org/api/fs.html#fs_fs_copyfile_src_dest_flags_callback .

The documentation does not say it but based on my tests it does keep/set the Modified-time to be the same as in the source-file, at least on Windows-10.

It does set the Created -time to the time the copy was made. But your question is about the modified-time so this is probably the simplest way to get what you want.

BTW. I find it curious that it now seems like the file was modified before it was created. How could that be! But so it seems, at least on Windows 10. I guess that's a good hint for us that the file was copied from somewhere else.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top