From 57b7d3d60179292838adf43626b2b1c635e4f73a Mon Sep 17 00:00:00 2001 From: zhuhao <979263092@qq.com> Date: Fri, 16 Aug 2024 13:42:19 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=8C=E6=9C=9F=EF=BC=9A=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=90=8C=E6=AD=A5=E6=A3=80=E6=B5=8B=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/file.js | 21 ++++++++++++++----- .../prepare/container/file-list-item.vue | 8 +++---- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/src/main/file.js b/src/main/file.js index 348c703..9dcba26 100644 --- a/src/main/file.js +++ b/src/main/file.js @@ -42,19 +42,23 @@ export default async function ({ app, shell, BrowserWindow, ipcMain }) { let filePath = appRootFilePath + fileNewName let uploadId = null let isOn = false + let lastMTime = fs.statSync(filePath).mtime.getTime() + console.log(lastMTime) setInterval(() => { - getFileMD5(filePath).then((md5New) => { - if (md5New !== md5) { - md5 = md5New + getFileMsg(filePath).then((msg) => { + if (msg !== lastMTime) { + lastMTime = msg if (uploadId) { clearTimeout(uploadId) } if (isOn === false) { + console.log(fileNewName) e.reply('listen-file-change-on' + fileNewName) isOn = true } //倒数十秒提交更改,十秒之内有继续修改则重置倒数 uploadId = setTimeout(() => { + console.log(223) //执行更新,上传文件 let formData = new FormData() formData.append('id', id) @@ -77,12 +81,19 @@ export default async function ({ app, shell, BrowserWindow, ipcMain }) { console.error('Error uploading file:', err) } }) - }, 20000) + }, 5000) } }) - }, 10000) + }, 1000) }) + function getFileMsg(path) { + return new Promise((resolve, reject) => { + const stats = fs.statSync(path) + return resolve(stats.mtime.getTime()) + }) + } + function getFileMD5(path) { return new Promise((resolve, reject) => { fs.readFile(path, (err, dataFile) => { diff --git a/src/renderer/src/views/prepare/container/file-list-item.vue b/src/renderer/src/views/prepare/container/file-list-item.vue index 77de6b1..8c4f2dc 100644 --- a/src/renderer/src/views/prepare/container/file-list-item.vue +++ b/src/renderer/src/views/prepare/container/file-list-item.vue @@ -246,12 +246,12 @@ export default { fileType: item.fileType }) ipcRenderer.on('listen-file-change-on' + item.fileNewName, () => { - item.async = 'on' + items.async = 'on' }) ipcRenderer.on('listen-file-change-success' + item.fileNewName, (e, { data, md5 }) => { - item.fileSize = data.fileSize - item.md5 = md5 - item.async = true + items.fileSize = data.fileSize + items.md5 = md5 + items.async = true }) } })