8

我可以使用以下命令复制 node.js 中的文件:

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

问题是如何像在常规文件复制命令中一样复制/保留修改的时间(mtime)。

4

2 回答 2

14

fs模块中有访问mtime的方法:

var stat = fs.statSync(fromFilePath);
fs.utimesSync(toFilePath, stat.atime, stat.mtime)
于 2012-12-04T02:29:42.747 回答
0

使用https://nodejs.org/api/fs.html#fs_fs_copyfile_src_dest_flags_callback

文档没有说,但根据我的测试,它确实保持/设置修改时间与源文件中的相同,至少在 Windows-10 上。

它确实将 Created 时间设置为制作副本的时间。但是你的问题是关于修改时间的,所以这可能是获得你想要的最简单的方法。

顺便提一句。我觉得奇怪的是,现在文件似乎在创建之前就被修改了。怎么可能!但至少在 Windows 10 上似乎是这样。我想这对我们来说是一个很好的暗示,文件是从其他地方复制的。

于 2018-09-09T23:09:40.693 回答