Electron 批量重命名工具代码示例,可以批量重命名文件夹中的所有文件:

const { app, BrowserWindow, dialog } = require('electron');
const fs = require('fs');
const path = require('path');let mainWindow;function createWindow() {mainWindow = new BrowserWindow({width: 800,height: 600,webPreferences: {nodeIntegration: true}});mainWindow.loadFile('index.html');mainWindow.webContents.openDevTools();mainWindow.on('closed', function () {mainWindow = null;});
}app.on('ready', createWindow);app.on('window-all-closed', function () {if (process.platform !== 'darwin') {app.quit();}
});app.on('activate', function () {if (mainWindow === null) {createWindow();}
});

// 选择文件夹

function selectDir() {dialog.showOpenDialog(mainWindow, {properties: ['openDirectory']}).then(result => {if (!result.canceled) {mainWindow.webContents.send('dir-selected', result.filePaths[0]);}})
}

// 重命名文件夹中所有文件

function renameFiles(dirPath, prefix, suffix) {fs.readdir(dirPath, (err, files) => {if (err) throw err;files.forEach((file, i) => {const oldPath = path.join(dirPath, file);const ext = path.extname(oldPath);const newName = `${prefix}${i + 1}${suffix}${ext}`;const newPath = path.join(dirPath, newName);fs.rename(oldPath, newPath, (err) => {if (err) throw err;});});});
}

// 主进程监听渲染进程触发的事件

const { ipcMain } = require('electron');
ipcMain.on('select-dir', () => {selectDir();
});ipcMain.on('rename-files', (event, args) => {const { dirPath, prefix, suffix } = args;renameFiles(dirPath, prefix, suffix);event.reply('rename-complete');
});
在 index.html 文件中,你可以加入以下代码,来触发主进程中的事件:<form id="rename-form"><label for="dir-path">选择文件夹:</label><button id="select-dir">选择</button><br><input type="text" id="prefix" placeholder="前缀"><input type="text" id="suffix" placeholder="后缀"><br><button type="submit">重命名</button>
</form><script>const { ipcRenderer } = require('electron');document.getElementById('select-dir').addEventListener('click', (event) => {event.preventDefault();ipcRenderer.send('select-dir');});document.getElementById('rename-form').addEventListener('submit', (event) => {event.preventDefault();const form = event.target;const dirPath = form.querySelector('#dir-path').value;const prefix = form.querySelector('#prefix').value;const suffix = form.querySelector('#suffix').value;ipcRenderer.send('rename-files', { dirPath, prefix, suffix });});ipcRenderer.on('dir-selected', (event, arg) => {const input = document.getElementById('dir-path');input.value = arg;});ipcRenderer.on('rename-complete', () => {alert('重命名完成');});
</script>

还可以添加批量重命名文件名中的某些字符、前缀或后缀等高级功能
你可以根据自己的需求来修改和扩展

Electron 批量重命名工具详细代码相关推荐

  1. mybaitplus 根据id批量进行修改_批量重命名工具

    审计师在归档的时候,会大量整理文件,比如对归档附件的重命名. 如果你使用的Total Commander这款神器,它自带批量重命名功能. 这里分享下,以前自己用Excel VBA做的批量重命名工具. ...

  2. 真正的全能文件批量重命名工具(命令形式)

    文件批量重命名工具大家都比较熟悉,这种工具虽然没什么技术含量,但是想设计好了非常不容易.功能简单的,几乎没什么用,很多需求都无法实现.功能复杂的,界面异常复杂,让人看到就眼花缭乱.就算号称最强大的文件 ...

  3. 超级文件批量重命名工具

    [转载][小技巧]文件批量重命名,轻松整理文件 (2016-06-11 16:26:00)转载▼ 标签:转载原文地址:[小技巧]文件批量重命名,轻松整理文件作者:信息化教学创新 信息化教学创新团队 停 ...

  4. HTML文件命名_批量重命名工具

    Rename Us破解版是一款文件批量重命名工具,该软件可以通关命令重命名或者复制多个文件进行修改,文件名可以根据用户所指定的规则进行更改,如更改文件的日期.后缀名等等,命名前的文件可以手动或者按照名 ...

  5. Linux 批量重命名工具 rename 的使用

    Linux 批量重命名工具 rename 的使用 安装 如果还没有安装,先执行安装命令 sudo apt-get install rename 用法 安装后,我们执行rename --help 命令来 ...

  6. 文件批量重命名工具,批量修改文件名的实现思路

    在工作中可能会遇到文件数据成果已经制作完成后,遇到文件命名规则变更,需要对大量文件重命名,甚至修改目录结构的.本文介绍利用FME实现文件批量重命名的解决方法. 因为工作实际情况各不相同,文件重命名规则 ...

  7. 【python应用】 文件名称批量重命名工具

    [python应用] 文件名称批量重命名工具 1.背景 2.代码 3.打包 4.使用方法 5.资源 1.背景 参考[python应用] 视频捕获及保存工具 https://blog.csdn.net/ ...

  8. Hitv8 文件批量重命名工具

        本工具用于单文件或批量文件文件名.文件类型扩展名重命名的小工具,欢迎使用! 使用说明: 1.使用拖放方式,将文件拖入列表框即可 2.可以不输文件名,表示文件名不变,只改类型: 类型也可以自已输 ...

  9. 程序10 VC编写批量重命名工具

    实现对文件夹下的全部文件进行重命名. 本节编写一个批量重命名工具. 学习内容: 文件操作,文件遍历等知识 API: CFileFind FindFile FindNextFile rename 视频学 ...

最新文章

  1. 【深度学习】(1) 前向传播,附python完整代码
  2. 2020 我的C++的学习之路 第八章函数
  3. 转盘在转动的同时ajax异步加载,用jQuery旋转插件jqueryrotate制作转盘抽奖.pdf
  4. 格雷码问题:输出当输入为n时的格雷码
  5. 前端学习(3165):react-hello-react之UUID库
  6. Ubuntu apache 禁止目录浏览
  7. Redis 实现接口访问频率限制
  8. A guide to convolution arithmetic for deep learning中译版
  9. 【java】java的Jaas授权与鉴权
  10. 在sqlexpress中添加DB和在sql analyzer中操作DB.
  11. B22-SVN在iOS开发的使用中遇到的问题
  12. 数据结构(java语言描述)递归实现——汉诺塔问题
  13. 结合Android源码分析总结单例模式的几种实现方式
  14. python局域网alive ip侦听
  15. ansys大变形开关要不要打开_ANSYS与ABAQUS比较之实例7橡胶垫圈的受压分析
  16. ubuntu 10.04 trackpoint
  17. Word文档压缩技巧,你不得不知道
  18. 分析拼多多分享文案的技巧
  19. 小程序开发工具_小程序开发工具都有哪些?
  20. net core WebApi——文件分片上传与跨域请求处理

热门文章

  1. 论文阅读_ 解释黑盒模型方法综述
  2. PowerBI 1. 系统技术整体架构
  3. 微软Power BI应用实战(1)——实时连接本地数据库
  4. Hbase 删除表数据
  5. 谈谈Spine动画在产品中的应用
  6. AIDL解析(二):AIDL项目开发
  7. wifi数传组网之精简mavlink
  8. Stimulsoft Reports.Ultimate​ 报表控件
  9. 叮当健康(9886.HK)赴港上市,“快+全”组合下继续保持行业领先
  10. centos7使用letsencrypt获取免费https证书