diff --git a/main.js b/main.js index ef3d7f7..86d3d24 100644 --- a/main.js +++ b/main.js @@ -90,8 +90,7 @@ async function showOpenDialog() { const result = await dialog.showOpenDialog(mainWindow, { properties: ['openFile'], filters: [ - { name: 'Markdown 文件', extensions: ['md', 'markdown', 'txt'] }, - { name: '所有文件', extensions: ['*'] } + { name: 'Markdown 文件', extensions: ['md', 'markdown', 'txt'] } ] }); if (!result.canceled && result.filePaths.length > 0) { @@ -169,8 +168,7 @@ ipcMain.handle('file:save', async (event, { filePath, content }) => { } else { const result = await dialog.showSaveDialog(mainWindow, { filters: [ - { name: 'Markdown 文件', extensions: ['md'] }, - { name: '文本文件', extensions: ['txt'] } + { name: 'Markdown 文件', extensions: ['md'] } ] }); if (!result.canceled) { @@ -192,8 +190,7 @@ ipcMain.handle('file:saveAs', async (event, { content }) => { try { const result = await dialog.showSaveDialog(mainWindow, { filters: [ - { name: 'Markdown 文件', extensions: ['md'] }, - { name: '文本文件', extensions: ['txt'] } + { name: 'Markdown 文件', extensions: ['md'] } ] }); if (!result.canceled) { diff --git a/renderer/renderer.js b/renderer/renderer.js index 4be9963..38c8603 100644 --- a/renderer/renderer.js +++ b/renderer/renderer.js @@ -429,6 +429,8 @@ input.multiple = true; input.onchange = (e) => { Array.from(e.target.files).forEach(file => { + const ext = file.name.substring(file.name.lastIndexOf('.')).toLowerCase(); + if (!['.md', '.markdown', '.txt'].includes(ext)) return; const reader = new FileReader(); reader.onload = (ev) => { createNewTab(file.name, ev.target.result); @@ -584,8 +586,11 @@ dropOverlay.classList.add('hidden'); const files = e.dataTransfer.files; + const allowedExts = ['.md', '.markdown', '.txt']; for (const file of files) { const filePath = file.path; + const ext = filePath ? filePath.substring(filePath.lastIndexOf('.')).toLowerCase() : ''; + if (!allowedExts.includes(ext)) continue; if (filePath && typeof window.electronAPI !== 'undefined') { const result = await window.electronAPI.readFile(filePath); if (result.success) {