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('重命名完成');
});
})

最新文章

  1. 淘宝购物车页面 PC端和移动端实战
  2. Infinite V1 Release Note
  3. 向STM32 CUBE MX 生成的工程里移植stemwin
  4. Socket开发框架之消息的回调处理
  5. 继续node爬虫 — 百行代码自制自动AC机器人日解千题攻占HDOJ
  6. Firefox终于返回到了Debian stable
  7. MAC下 JDK环境配置、版本切换以及ADB环境配置
  8. ZigBee安全相关
  9. Smarty模板引擎技术
  10. ☀【JS】有效状态机
  11. Yii2 ActiveForm表单自定义样式
  12. iOS-设计模式之代理反向传值
  13. hdu1024
  14. 部分网站允许空白referer的防盗链图片的js破解代码
  15. 细说Asp.Net Web API消息处理管道(二)
  16. bootstrap---treeview使用方法
  17. 整合 MyPerf4J 做Java性能监控和统计工具
  18. keras安装-【老鱼学keras】
  19. python面试题之什么是PEP8规范
  20. 标定版制作(棋盘、圆点、aruco等)

热门文章

  1. 基础JavaScript练习(一)总结
  2. springmvc.xml 中报错:Start state is missing. Add at least one state to the flow
  3. springcloud gateway整合sentinel
  4. SpringBoot2 整合ElasticJob框架,定制化管理流程
  5. swoft 上传图片到 阿里云oss aliyun-oss
  6. 爬虫之BeautifulSoup类
  7. go 广度搜索案例(迷宫)
  8. 2020年启蒙及小学识字练字APP或小程序测评榜
  9. JavaScript进阶之高阶函数篇
  10. Dubbo之服务消费原理