nodejs - 如何更改文件的创建时间

时间:2014-08-25 10:46:12

标签: node.js file last-modified

fsStat类实例返回mtime,atime和ctime日期对象,但似乎只有用于更改mtime和atime的API(我猜测最后修改和访问)。如何更改创建时间以创建文件的精确副本,因为它也会与原始文件同时创建?

3 个答案:

答案 0 :(得分:4)

目前Node本身不可能,但您可以使用https://github.com/ronomon/utimes(Node的本机加载项)来更改文件的创建时间(即btime)在Windows和Mac上。

答案 1 :(得分:2)

tl; tr:这不可能是atm(Node.js< = v6)。

即使fs.stat()返回birthtime个文件:

  

birthtime"出生时间" - 文件创建时间。创建文件时设置一次。在没有出生时间的文件系统上,此字段可能会包含ctime1970-01-01T00:00Z(即unix纪元时间戳0)...

     

在Node v0.12之前,ctime在Windows系统上持有birthtime请注意,自v0.12起,ctime不是& #34;创建时间",在Unix系统上,它从未如此。

无法更新。来自https://github.com/joyent/node/issues/8252

  

fs.utimes使用utime(2)(http://linux.die.net/man/2/utime),它不允许您更改ctime。

(同样适用于birthtime

答案 2 :(得分:0)

如果您只想解决问题(更改文件创建时间),python中有一个解决方案,请参见此处:https://stackoverflow.com/a/4996407/6733679