前言
最近在吃午飯的時候突然想起來在新大上JS課程時,老師講node的時候提了一句說node可以批量重命名文件,我就想著看看能不能實現這個功能。
看了node的官方文檔,查到fs模塊有一個readdir的API,它讀取一個目錄的內容,測試了一下,返回的結果是一個數組,元素就是文件夾的名字。詳細的介紹可以參考這里://www.49028c.com/article/58609.htm
還有一個API,rename聽名字就是重命名相關的。詳細的可以參考這里://www.49028c.com/article/58548.htm
實現思路
整理了一下思路很簡單,就是先把原文件的文件名讀取出來放入一個數組,再把新名字作為一個數組,用renameAPI實現,但是批量重命名的名字只能遵循數字 +1 的規律,寫了如下函數
示例代碼
//rename.jsconst 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()
文件目錄
file文件夾下放置要重命名的文件
打開終端,cd到rename文件夾下,執行node rename.js
即可
這只是一個簡單的實現,還是有很多不足,有更好的方法,歡迎討論
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對武林網的支持。
新聞熱點
疑難解答