用node寫一個批量重命名文件的函數

今天吃午餐的時候忽然想起來在新大上JS課程時,老師講node的時候提了一句說node能夠批量重命名文件,我就想着看看能不能實現這個功能。
看了node的官方文檔,查到fs模塊有一個readdir的API,它讀取一個目錄的內容,測試了一下,返回的結果是一個數組,元素就是文件夾的名字。還有一個API,rename聽名字就是重命名相關的。
整理了一下思路很簡單,就是先把原文件的文件名讀取出來放入一個數組,再把新名字做爲一個數組,用renameAPI實現,可是批量重命名的名字只能遵循數字 +1 的規律,寫了以下函數node

//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()

文件目錄數組

clipboard.png

file文件夾下放置要重命名的文件
打開終端,cd到rename文件夾下,執行node rename.js便可函數

這只是一個簡單的實現,仍是有不少不足,有更好的方法,歡迎討論測試

相關文章
相關標籤/搜索