首页 > 解决方案 > copyFileSync 与 writeFileSync

问题描述

我正在处理文件操作并遇到了这个问题。

试图在网上寻找答案,但没有遇到任何好的、准确的答案。

以下哪一项是更优化的文件复制方式?

readFileSync() -> writeFileSync()?

或者直接

copyFileSync()?

还注意到 copyFileSync 使用原始文件的时间戳。如果copyFileSync()更优化,有没有办法使用“复制时间时间戳”?

谢谢!

标签: javascriptnode.jsfs

解决方案


那么首先您需要知道读取文件内容然后将其写入另一个文件与复制文件不同,文件不仅仅是其原始内容,几乎所有文件都有与之关联的元数据,并且当您读取一个文件内容并将其写入目的地,您会丢失该元数据。因此,如果您想复制文件,请使用 copyFile 方法,否则您将不得不自己处理元数据。

其次,这两种方法理论上应该具有相同的性能签名,实际上尽管它们在不同的条件下(不同的操作系统、不同的文件大小)可能存在差异,但是担心这更像是过早的优化。但是出于性能考虑,最好使用这些方法的异步版本。

copyFileSync 不允许您直接更改文件的创建日期,但您可以使用fs.stat


推荐阅读