利用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 相关文章推荐
jquery实现一个简单好用的弹出框
Sep 26 Javascript
jQuery实现的手机发送验证码倒计时效果代码分享
Aug 24 Javascript
JavaScript保留关键字汇总
Dec 01 Javascript
使用微信内置浏览器点击下拉框出现页面乱跳转现象(iphone),该怎么办
Jan 04 Javascript
js 创建对象 经典模式全面了解
Aug 16 Javascript
JavaScript 上传文件(psd,压缩包等),图片,视频的实现方法
Jun 19 Javascript
js正则表达式校验指定字符串的方法
Jul 23 Javascript
vue 右键菜单插件 简单、可扩展、样式自定义的右键菜单
Nov 29 Javascript
JS监听滚动和id自动定位滚动
Dec 18 Javascript
JS中如何轻松遍历对象属性的方式总结
Aug 06 Javascript
JS实现拖拽元素时与另一元素碰撞检测
Aug 27 Javascript
JS前端轻量fabric.js系列物体基类
Aug 05 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
phpBB BBcode处理的漏洞
2006/10/09 PHP
php split汉字
2009/06/05 PHP
apache mysql php 源码编译使用方法
2012/05/03 PHP
php三种实现多线程类似的方法
2015/10/30 PHP
PHP实现的随机IP函数【国内IP段】
2016/07/20 PHP
Yii全局函数用法示例
2017/01/22 PHP
JavaScript中两种链式调用实现代码
2011/01/12 Javascript
jquery的map与get方法详解
2013/11/04 Javascript
jquery 日期控件datepicker属性详细解析
2013/11/08 Javascript
js 针对html DOM元素操作等经验累积
2014/03/11 Javascript
jquery序列化表单去除指定元素示例代码
2014/04/10 Javascript
jQuery实现自动调整字体大小的方法
2015/06/15 Javascript
js实现文字滚动效果
2016/03/03 Javascript
需灵活掌握的Bootstrap预定义排版类 你精通吗?
2016/06/20 Javascript
浅谈JavaScript对象与继承
2016/07/10 Javascript
浅谈JS使用[ ]来访问对象属性
2016/09/21 Javascript
JavaScript &amp; jQuery完美判断图片是否加载完毕
2017/01/08 Javascript
简单谈谈Javascript函数中的arguments
2017/02/09 Javascript
vue-loader教程介绍
2017/06/14 Javascript
vue 巧用过渡效果(小结)
2018/09/22 Javascript
微信小程序实现的五星评价功能示例
2019/04/25 Javascript
使用pkg打包ThinkJS项目的方法步骤
2019/12/30 Javascript
Python字典数据对象拆分的简单实现方法
2017/12/05 Python
Python 利用高德地图api实现经纬度与地址的批量转换
2019/08/14 Python
Python3运算符常见用法分析
2020/02/14 Python
Python爬取网站图片并保存的实现示例
2021/02/26 Python
手把手教你实现一个canvas智绘画板的方法
2019/03/04 HTML / CSS
节省高达65%的城市景点费用:Go City
2019/07/06 全球购物
学校后勤岗位职责
2014/02/19 职场文书
母亲节感恩活动记录
2014/03/16 职场文书
银行会计主管岗位职责
2014/10/01 职场文书
私用公车造成事故检讨书
2014/11/16 职场文书
中国世界遗产导游词
2015/02/13 职场文书
2015年服务员个人工作总结
2015/05/27 职场文书
ObjectMapper 如何忽略字段大小写
2021/06/29 Java/Android
vue-cli3.0修改打包后的文件名和文件地址,打包后本地运行报错解决
2022/04/06 Vue.js