【发布时间】:2012-11-21 14:27:06
【问题描述】:
我可以使用以下命令复制 node.js 中的文件:
var readStream = fs.createReadStream(fromFilePath);
readStream.pipe(fs.createWriteStream(toFilePath));
问题是如何像在常规文件复制命令中一样复制/保留修改的时间(mtime)。
【问题讨论】:
我可以使用以下命令复制 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 上似乎是这样。我想这对我们来说是一个很好的暗示,文件是从其他地方复制的。
【讨论】: