利用node實現(xiàn)一個批量重命名文件的函數(shù)
前言
最近在吃午飯的時候突然想起來在新大上JS課程時,老師講node的時候提了一句說node可以批量重命名文件,我就想著看看能不能實現(xiàn)這個功能。
看了node的官方文檔,查到fs模塊有一個readdir的API,它讀取一個目錄的內(nèi)容,測試了一下,返回的結(jié)果是一個數(shù)組,元素就是文件夾的名字。詳細(xì)的介紹可以參考這里:http://www.dbjr.com.cn/article/58609.htm
還有一個API,rename聽名字就是重命名相關(guān)的。詳細(xì)的可以參考這里:http://www.dbjr.com.cn/article/58548.htm
實現(xiàn)思路
整理了一下思路很簡單,就是先把原文件的文件名讀取出來放入一個數(shù)組,再把新名字作為一個數(shù)組,用renameAPI實現(xiàn),但是批量重命名的名字只能遵循數(shù)字 +1 的規(guī)律,寫了如下函數(shù)
示例代碼
//rename.js const fs = require('fs') //引入node內(nèi)置的文件系統(tǒng) function rename() { let newName = [] fs.readdir('./file/', (err, oldName) => { //讀取file文件夾下的文件的名字,oldName是一個數(shù)組 if (err) { console.log(err) } for (let i = 0; i < oldName.length; i++) { let name = `new${i}.jpg` // 以圖片為例 newName[i] = name // 把名字賦給一個新的數(shù)組 } 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()
文件目錄
file文件夾下放置要重命名的文件
打開終端,cd到rename文件夾下,執(zhí)行node rename.js
即可
這只是一個簡單的實現(xiàn),還是有很多不足,有更好的方法,歡迎討論
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
package-lock.json解決依賴的版本管理使用詳解
這篇文章主要為大家介紹了package-lock.json解決依賴的版本管理使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08實戰(zhàn)node靜態(tài)文件服務(wù)器的示例代碼
本篇文章主要介紹了實戰(zhàn)node靜態(tài)文件服務(wù)器的示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03通過node-mysql搭建Windows+Node.js+MySQL環(huán)境的教程
這篇文章主要介紹了通過node-mysql搭建Windows+Node.js+MySQL環(huán)境的教程,node-mysql是JavaScript編寫的一個Node的MySQL驅(qū)動,需要的朋友可以參考下2016-03-03Node.js設(shè)置CORS跨域請求中多域名白名單的方法
這篇文章主要介紹了Node.js設(shè)置CORS跨域請求中多域名白名單的方法,文中通過示例代碼介紹的非常詳細(xì),相信對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。2017-03-03Node.js使用Sharp.js進(jìn)行圖像處理的實踐與技巧
Sharp.js 是一個高性能的 Node.js 圖像處理庫,基于 C 語言編寫的 libvips 庫封裝而來,提供了便捷、高效的圖片編輯與轉(zhuǎn)換功能,以下是對 Sharp.js 的深入解析,包括全方位實踐與技巧,需要的朋友可以參考下2024-08-08