利用node实现一个批量重命名文件的函数


Posted in Javascript onDecember 21, 2017

前言

最近在吃午饭的时候突然想起来在新大上JS课程时,老师讲node的时候提了一句说node可以批量重命名文件,我就想着看看能不能实现这个功能。

看了node的官方文档,查到fs模块有一个readdir的API,它读取一个目录的内容,测试了一下,返回的结果是一个数组,元素就是文件夹的名字。详细的介绍可以参考这里:https://3water.com/article/58609.htm

还有一个API,rename听名字就是重命名相关的。详细的可以参考这里:https://3water.com/article/58548.htm

实现思路

整理了一下思路很简单,就是先把原文件的文件名读取出来放入一个数组,再把新名字作为一个数组,用renameAPI实现,但是批量重命名的名字只能遵循数字 +1 的规律,写了如下函数

示例代码

//rename.js
const fs = require('fs') //引入node内置的文件系统

function rename() {
 let newName = []
 fs.readdir('./file/', (err, oldName) => { //读取file文件夹下的文件的名字,oldName是一个数组
 if (err) {
  console.log(err)
 }
 for (let i = 0; i < oldName.length; i++) {
  let name = `new${i}.jpg` // 以图片为例
  newName[i] = name  // 把名字赋给一个新的数组
 }
 for (var i = 0; i < oldName.length; i++) {
  let oldPath = `./file/${oldName[i]}` //原本的路径
  let newPath = `./file/${newName[i]}` //新路径
  fs.rename(oldPath, newPath, (err) => { //重命名
  if (err) {
   console.log(err)
  }
  console.log('done!')
  })
 }
 })
}
rename()

文件目录

利用node实现一个批量重命名文件的函数

file文件夹下放置要重命名的文件

打开终端,cd到rename文件夹下,执行node rename.js即可

这只是一个简单的实现,还是有很多不足,有更好的方法,欢迎讨论

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
js用Date对象处理时间实现思路及代码
Jan 31 Javascript
jQuery Mobile页面跳转后未加载外部JS原因分析及解决
Mar 18 Javascript
js实现的map方法示例代码
Jan 13 Javascript
原生js实现的贪吃蛇网页版游戏完整实例
May 18 Javascript
jQuery实现的网页竖向菜单效果代码
Aug 26 Javascript
使用堆实现Top K算法(JS实现)
Dec 25 Javascript
jQuery实现按钮点击遮罩加载及处理完后恢复的效果
Jun 07 Javascript
vue 2.0项目中如何引入element-ui详解
Sep 06 Javascript
Vue 2.5 Level E 发布了: 新功能特性一览
Oct 24 Javascript
vue+element tabs选项卡分页效果
Jun 29 Javascript
VSCode搭建React Native环境
May 07 Javascript
一分钟学会JavaScript中的try-catch
Dec 14 Javascript
详解webpack3编译兼容IE8的正确姿势
Dec 21 #Javascript
利用vue开发一个所谓的数独方法实例
Dec 21 #Javascript
开发Vue树形组件的示例代码
Dec 21 #Javascript
详解使用vuex进行菜单管理
Dec 21 #Javascript
Angular5.1新功能分享
Dec 21 #Javascript
vue2中的keep-alive使用总结及注意事项
Dec 21 #Javascript
webpack写jquery插件的环境配置
Dec 21 #jQuery
You might like
mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别
2009/04/24 PHP
PHP 上传文件的方法(类)
2009/07/30 PHP
PHP中的替代语法简介
2014/08/22 PHP
ECshop 迁移到 PHP7版本时遇到的兼容性问题
2016/02/15 PHP
PHP基于反射机制实现插件的可插拔设计详解
2016/11/10 PHP
php实现网页端验证码功能
2017/07/11 PHP
PDO::beginTransaction讲解
2019/01/27 PHP
PHP中十六进制颜色与RGB颜色值互转的方法
2019/03/18 PHP
php layui实现前端多图上传实例
2019/07/30 PHP
php中加密解密DES类的简单使用方法示例
2020/03/26 PHP
ComboBox 和 DateField 在IE下消失的解决方法
2013/08/30 Javascript
Javascript中对象继承的实现小例
2014/05/12 Javascript
Jquery插件分享之气泡形提示控件grumble.js
2014/05/20 Javascript
jquery实现平滑的二级下拉菜单效果
2015/08/26 Javascript
jquery实现可自动收缩的TAB网页选项卡代码
2015/09/06 Javascript
angularjs实现文字上下无缝滚动特效代码
2016/09/04 Javascript
Vue-resource实现ajax请求和跨域请求示例
2017/02/23 Javascript
详解RequireJs官方使用教程
2017/10/31 Javascript
vue-cli实现多页面多路由的示例代码
2018/01/30 Javascript
小程序实现留言板
2018/11/02 Javascript
详解基于vue-cli3快速发布一个fullpage组件
2019/03/08 Javascript
jquery中attr、prop、data区别与用法分析
2019/09/25 jQuery
Vue 设置axios请求格式为form-data的操作步骤
2019/10/29 Javascript
详解JavaScript 事件流
2020/09/02 Javascript
[03:05]《我与DAC》之xiao8:DAC与BG
2018/03/27 DOTA
Python中字典和JSON互转操作实例
2015/01/19 Python
python将字典列表导出为Excel文件的方法
2019/09/02 Python
python中添加模块导入路径的方法
2021/02/03 Python
软件测试常见笔试题
2012/02/04 面试题
自我评价格式
2014/01/06 职场文书
2014年两会学习心得体会
2014/03/17 职场文书
政府个人对照检查材料
2014/08/28 职场文书
银行客户经理岗位职责
2015/04/09 职场文书
财务稽核岗位职责
2015/04/13 职场文书
病假条格式范文
2015/08/17 职场文书
服务行业标语口号
2015/12/26 职场文书