利用node實(shí)現(xiàn)一個(gè)批量重命名文件的函數(shù)
前言
最近在吃午飯的時(shí)候突然想起來在新大上JS課程時(shí),老師講node的時(shí)候提了一句說node可以批量重命名文件,我就想著看看能不能實(shí)現(xiàn)這個(gè)功能。
看了node的官方文檔,查到fs模塊有一個(gè)readdir的API,它讀取一個(gè)目錄的內(nèi)容,測(cè)試了一下,返回的結(jié)果是一個(gè)數(shù)組,元素就是文件夾的名字。詳細(xì)的介紹可以參考這里:http://m.fzitv.net/article/58609.htm
還有一個(gè)API,rename聽名字就是重命名相關(guān)的。詳細(xì)的可以參考這里:http://m.fzitv.net/article/58548.htm
實(shí)現(xiàn)思路
整理了一下思路很簡單,就是先把原文件的文件名讀取出來放入一個(gè)數(shù)組,再把新名字作為一個(gè)數(shù)組,用renameAPI實(shí)現(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是一個(gè)數(shù)組
if (err) {
console.log(err)
}
for (let i = 0; i < oldName.length; i++) {
let name = `new${i}.jpg` // 以圖片為例
newName[i] = name // 把名字賦給一個(gè)新的數(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即可
這只是一個(gè)簡單的實(shí)現(xiàn),還是有很多不足,有更好的方法,歡迎討論
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
nodejs發(fā)送http請(qǐng)求時(shí)遇到404長時(shí)間未響應(yīng)的解決方法
這篇文章主要為大家詳細(xì)介紹了nodejs發(fā)送http請(qǐng)求時(shí)遇到404長時(shí)間未響應(yīng)的解決方法2017-12-12
在Debian(Raspberry Pi)樹莓派上安裝NodeJS的教程詳解
在樹莓派上運(yùn)行NodeJS并不需要特別的配置,你只需要確??梢杂胦penssh遠(yuǎn)程連接到你的樹莓派就ok了,關(guān)于在Debian(Raspberry Pi)樹莓派上安裝NodeJS的方法,大家可以通過本文了解下2017-09-09
node上的redis調(diào)用優(yōu)化示例詳解
這篇文章主要給大家介紹了關(guān)于node上redis調(diào)用優(yōu)化的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-10-10
nodejs連接mongodb數(shù)據(jù)庫實(shí)現(xiàn)增刪改查
本篇文章主要結(jié)合了nodejs操作mongodb數(shù)據(jù)庫實(shí)現(xiàn)增刪改查,包括對(duì)數(shù)據(jù)庫的增加,刪除,查找和更新,有興趣的可以了解一下。2016-12-12
基于node.js依賴express解析post請(qǐng)求四種數(shù)據(jù)格式
本篇文章主要介紹了node.js依賴express解析post請(qǐng)求四種數(shù)據(jù)格式,主要是www-form-urlencoded,form-data,application/json,text/xml,有興趣的可以了解一下。2017-02-02
基于Node的Axure文件在線預(yù)覽的實(shí)現(xiàn)代碼
這篇文章主要介紹了基于Node的Axure文件在線預(yù)覽的實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
node 使用 nodemailer工具發(fā)送驗(yàn)證碼到郵箱
最近閑著沒事,我就在練習(xí)使用node和mysql編寫接口,計(jì)劃寫一個(gè)完整的vue系統(tǒng),這篇文章主要介紹了node 使用 nodemailer工具發(fā)送驗(yàn)證碼到郵箱,需要的朋友可以參考下2023-10-10
Node.js net模塊功能及事件監(jiān)聽用法分析
這篇文章主要介紹了Node.js net模塊功能及事件監(jiān)聽用法,結(jié)合實(shí)例形式分析了net模塊功能及事件監(jiān)聽相關(guān)操作技巧,需要的朋友可以參考下2019-01-01
Node.js API詳解之 os模塊用法實(shí)例分析
這篇文章主要介紹了Node.js API詳解之 os模塊用法,結(jié)合實(shí)例形式分析了Node.js API中os模塊基本功能、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下2020-05-05

