利用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 常见开发使用技巧总结
Dec 26 Javascript
Javascript学习笔记8 用JSON做原型
Jan 11 Javascript
解决Extjs上传图片无法预览的解决方法
Mar 22 Javascript
js 显示base64编码的二进制流网页图片
Apr 04 Javascript
jquery模拟LCD 时钟的html文件源代码
Jun 16 Javascript
浏览器兼容性问题大汇总
Dec 17 Javascript
Bootstrap字体图标无法正常显示的解决方法
Oct 08 Javascript
vue开发心得和技巧分享
Oct 27 Javascript
javascript 正则表达式去空行方法
Jan 24 Javascript
vuejs如何配置less
Apr 25 Javascript
最新Javascript程序员面试试题和解题方法
Nov 23 Javascript
js微信分享接口调用详解
Jul 23 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
PHP自动生成月历代码
2006/10/09 PHP
php 截取字符串并以零补齐str_pad() 函数
2011/05/07 PHP
PHP中余数、取余的妙用
2015/06/29 PHP
iOS+PHP注册登录系统 PHP部分(上)
2016/12/26 PHP
jQuery右键菜单contextMenu使用实例
2011/09/28 Javascript
jquery的ajax()函数传值中文乱码解决方法介绍
2012/11/08 Javascript
放弃用你的InnerHTML来输出HTML吧 jQuery Tmpl不详细讲解
2013/04/20 Javascript
jQuery中index()的用法分析
2014/09/05 Javascript
jQuery中outerHeight()方法用法实例
2015/01/19 Javascript
javascript制作网页图片上实现下雨效果
2015/02/26 Javascript
深入浅析JavaScript中的作用域和上下文
2016/03/26 Javascript
JS弹出层遮罩,隐藏背景页面滚动条细节优化分析
2016/04/29 Javascript
深入浅出讲解ES6的解构
2016/08/03 Javascript
基于BootStrap实现简洁注册界面
2017/07/20 Javascript
JS获取指定月份的天数两种实现方法
2018/06/22 Javascript
在create-react-app中使用css modules的示例代码
2018/07/31 Javascript
小程序兼容安卓和IOS数据处理问题及坑
2018/09/18 Javascript
javascript实现异形滚动轮播
2019/11/28 Javascript
JavaScript冒泡算法原理与实现方法深入理解
2020/06/04 Javascript
Python基于DES算法加密解密实例
2015/06/03 Python
把csv文件转化为数组及数组的切片方法
2018/07/04 Python
pandas 空的dataframe 插入列名的示例
2018/10/30 Python
Python完成毫秒级抢淘宝大单功能
2019/06/06 Python
python处理大日志文件
2019/07/23 Python
Django中提供的6种缓存方式详解
2019/08/05 Python
用python查找统一局域网下ip对应的mac地址
2021/01/13 Python
美国第二大连锁药店:Rite Aid
2019/04/03 全球购物
索尼巴西商店:Sony巴西
2019/06/21 全球购物
违反校纪校规检讨书
2014/02/15 职场文书
大一新生期末自我评价
2014/09/12 职场文书
授权委托书样本
2014/09/25 职场文书
Golang的继承模拟实例
2021/06/30 Golang
详细聊聊浏览器是如何看闭包的
2021/11/11 Javascript
MySQL实战记录之如何快速定位慢SQL
2022/03/23 MySQL
Go微服务项目配置文件的定义和读取示例详解
2022/06/21 Golang
SpringBoot详解执行过程
2022/07/15 Java/Android