我可以使用以下命令复制 node.js 中的文件:
var readStream = fs.createReadStream(fromFilePath);
readStream.pipe(fs.createWriteStream(toFilePath));
问题是如何像在常规文件复制命令中一样复制/保留修改的时间(mtime)。
fs
模块中有访问mtime的方法:
var stat = fs.statSync(fromFilePath);
fs.utimesSync(toFilePath, stat.atime, stat.mtime)
使用https://nodejs.org/api/fs.html#fs_fs_copyfile_src_dest_flags_callback。
文档没有说,但根据我的测试,它确实保持/设置修改时间与源文件中的相同,至少在 Windows-10 上。
它确实将 Created 时间设置为制作副本的时间。但是你的问题是关于修改时间的,所以这可能是获得你想要的最简单的方法。
顺便提一句。我觉得奇怪的是,现在文件似乎在创建之前就被修改了。怎么可能!但至少在 Windows 10 上似乎是这样。我想这对我们来说是一个很好的暗示,文件是从其他地方复制的。