利用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中Iframe之间传值的方法
Mar 11 Javascript
JS实现动态给图片添加边框的方法
Apr 01 Javascript
Javascript使用function创建类的两种方法(推荐)
Nov 19 Javascript
微信小程序 数据封装,参数传值等经验分享
Jan 09 Javascript
js学习总结之DOM2兼容处理this问题的解决方法
Jul 27 Javascript
使用命令行工具npm新创建一个vue项目的方法
Dec 27 Javascript
JavaScript轮播停留效果的实现思路
May 24 Javascript
vue+axios+mock.js环境搭建的方法步骤
Aug 28 Javascript
浅谈angular2子组件的事件传递(任意组件事件传递)
Sep 30 Javascript
JavaScript创建、读取和删除cookie
Sep 03 Javascript
在HTML中使用JavaScript的两种方法
Dec 24 Javascript
如何使用JavaScript策略模式校验表单
Apr 29 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
全国FM电台频率大全 - 16 河南省
2020/03/11 无线电
一个PHP+MSSQL分页的例子
2006/10/09 PHP
WHOIS类的修改版
2006/10/09 PHP
PHP如何编写易读的代码
2007/07/10 PHP
Zend Framework分页类用法详解
2016/03/22 PHP
JavaScript脚本性能的优化方法
2007/02/02 Javascript
JavaScript 实现模态对话框 源代码大全
2009/05/02 Javascript
JavaScript中访问节点对象的方法有哪些如何使用
2013/09/24 Javascript
js/jquery获取文本框输入焦点的方法
2014/03/04 Javascript
Extjs根据条件设置表格某行背景色示例
2014/07/23 Javascript
jQuery后代选择器用法实例
2014/12/23 Javascript
轻松学习jQuery插件EasyUI EasyUI实现拖动基本操作
2015/11/30 Javascript
jQuery中ajax的load()与post()方法实例详解
2016/01/05 Javascript
解决微信小程序云开发中获取数据库的内容为空的方法
2019/05/15 Javascript
LayUI数据接口返回实体封装的例子
2019/09/12 Javascript
完美解决vue 中多个echarts图表自适应的问题
2020/07/19 Javascript
简单了解JavaScript作用域
2020/07/31 Javascript
Vue父组件监听子组件生命周期
2020/09/03 Javascript
原生js实现点击按钮复制内容到剪切板
2020/11/19 Javascript
JavaScript实现浏览器网页自动滚动并点击的示例代码
2020/12/05 Javascript
[54:05]DOTA2-DPC中国联赛定级赛 SAG vs iG BO3第一场 1月9日
2021/03/11 DOTA
仅用50行Python代码实现一个简单的代理服务器
2015/04/08 Python
python Spyder界面无法打开的解决方法
2018/04/27 Python
python matplotlib绘图,修改坐标轴刻度为文字的实例
2018/05/25 Python
Python操作MySQL数据库的方法
2018/06/20 Python
Python上下文管理器用法及实例解析
2019/11/11 Python
加拿大最大的体育用品、鞋类和服装零售商:Sport Chek
2018/11/29 全球购物
什么是会话Bean
2015/05/14 面试题
中学生期末评语
2014/02/03 职场文书
师范生自我鉴定
2014/03/20 职场文书
婚前协议书范本
2014/04/15 职场文书
离婚协议书包括哪些内容
2014/10/16 职场文书
西柏坡导游词
2015/02/05 职场文书
2015中学教师个人工作总结
2015/07/22 职场文书
2016教师节问候语
2015/11/10 职场文书
springboot如何接收application/x-www-form-urlencoded类型的请求
2021/11/02 Java/Android