前言
在默认情况下,一个文件的创建时间和修改时间是系统自己设定的,我们不能修改该的。但我们有时为了某种特殊需要,为了不让别人一眼看出文件已经给修改了,我们又需要修改文件的创建时间和修改时间。那么如何修改文件夹时间,如何修改文件的创建时间,如何批量修改文件的创建时间、修改时间和访问时间呢?别着急,接下来就带你自己修改他们。所以,闲话不多说啦,开始写我们的代码啦~~
ps:小工具推荐NewFileTime,以上简述摘抄于
NewFileTime
简单的搭建一下
-
新建一个
files目录 -
初始化一个
node项目工程npm init -y
看到这里你会发现,其实我没有安装依赖,是因为原生的库有这个自带的功能吗?说是也行,说不是也行。原生的utimes目前支持修改文件的修改时间和访问时间,不支持修改文件的创建时间,所以我们需要借助一个第三方库来修改。
为什么不直接安装这个第三方库呢?
因为这个库有些许特殊,分两种情况,一个是低版本Node可以直接安装,在我本机的Node13上运行则会失败。具体原因嘛,可以看看下方的链接
ps: 原因 + 解决方案
所以,在低版本的Node我们可以直接npm install @ronomon/utimes,而在版本相对较高的则需要npm i https://github.com/Jule-/utimes.git#napi-migration啦
这里也提一嘴,如果@ronomon/utimes安装失败的话,是因为这些原生Node拓展是需要编译的,所以我们可能需要安装windows-build-tools,即以管理员身份启动PowerShell并运行:
npm install --global windows-build-tools
安装完依赖之后就可以正式写我们的代码啦,其实这个代码相对简单,就是直接调用它的api就好了。
简单的使用一下
-
新建一个
test-files文件夹 -
在
test-files文件夹新建1.txt文件供我们测试 -
编写如下代码:
// 导入 utimes const { utimes } = require("@ronomon/utimes"); utimes( "./test-files/1.txt", // 创建时间 +new Date("2010/01/01"), // 修改时间 +new Date("2010/01/02"), // 访问时间 +new Date("2010/01/03"), (err) => { // 修改成功的回调 console.log(`success`); } ); -
运行代码,
node app.js,是都发现日期发生了改变呢?
看到这里你以为是不是写完了,其实也差不多了