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