0. 前言
從B站下載了一點視頻,碩鼠自動將標題添加到了每個文件名的前面,導致文件名過長,不方面查看文件的具體內容。
雖然只有二十幾個文件,但是手動刪除前綴還是個不小的工作量,還有可能刪除錯誤。考慮到正在努力成為一個程序員,應該為每一個帶有重復屬性的工作尋求優化。
想到nodejs可以讀寫文件,決定嘗試使用nodejs來實現。網上搜到一點類似做法,根據自己需要,改吧改吧,二十分鍾寫好了(確實比手動刪除慢了好多==)。
1. 引包
// nodejs中文件操作主要依靠fs模塊
const fs = require('fs')
2. 實現
// 1. 定義兩個工具函數
// 獲取指定目錄路徑下的所有文件名
const getFileNames = path => {
// 使用readdir獲取指定目錄下的所有文件名
return fs.readdirSync(path);;
}
// 根據指定字符截取文件名,返回截取后的字段
const getFileSuffix = (fileName, splitChar) => {
// 取字符第一次出現的位置
const first = fileName.indexOf(splitChar);
// 取字符最后一次出現的位置(根據需要選擇)
// const first = fileName.lastIndexOf(splitChar);
const namelength = fileName.length; //取到文件名長度
return fileName.substring(first + 1, namelength); //截取獲得后綴名
}
// 2. 定義目錄
const dirName = `D:\\3. 生活\\3.2 文件下載\\碩鼠下載\\我的解析任務1912152356`;
// 3. 讀取與改寫
let files = getFileNames(dirName);
files.forEach((item, i) => {
// 這里對舊名操作獲取新名
let newName = getFileSuffix(item, "-")
// 使用rename方法進行重命名
fs.rename(`${dirName}\\${item}`, `${dirName}\\${newName}`, (err) => {
if (err) throw err;
console.log('重命名完成');
});
})