Преглед на файлове

downloadFile方法customPath

PUGE преди 1 месец
родител
ревизия
25abf8e594
променени са 2 файла, в които са добавени 22 реда и са изтрити 7 реда
  1. 0 1
      .gitignore
  2. 22 6
      main.js

+ 0 - 1
.gitignore

@@ -13,4 +13,3 @@ LICENSE.electron.txt
 vk_swiftshader_icd.json
 LICENSES.chromium.html
 *.zip
-UsersmailDocumentsGitHubmyAppdownload/123/高姗.png

+ 22 - 6
main.js

@@ -804,17 +804,33 @@ ipcMain.handle("downloadFile", async (event, message) => {
     // 确定保存路径
     let saveDir;
     if (customPath) {
-      // 使用自定义路径
-      saveDir = path.join(__dirname.replaceAll('\\', '/').replace('/resources/app.asar', ''), 'download/') + customPath;
+      saveDir = customPath;
     } else {
-      // 使用默认的 download 目录
-      saveDir = path.join(__dirname.replaceAll('\\', '/').replace('/resources/app.asar', ''), 'download/');
+      // 关键修复:使用正确的路径获取方式
+      const baseDir = app.isPackaged 
+        ? process.resourcesPath  // 打包后:resources目录
+        : process.cwd();         // 开发环境:当前工作目录
+      
+      saveDir = path.join(baseDir, 'downloads'); // 使用downloads而不是download
     }
     
+    // 确保路径格式正确(Windows下使用path.normalize)
+    saveDir = path.normalize(saveDir);
+    
+    console.log('保存目录:', saveDir);
+    
     // 确保目录存在
     if (!fs.existsSync(saveDir)) {
-      fs.mkdirSync(saveDir, { recursive: true });
-      console.log('创建目录:', saveDir);
+      try {
+        fs.mkdirSync(saveDir, { 
+          recursive: true,
+          mode: 0o755  // 设置目录权限
+        });
+        console.log('创建目录成功:', saveDir);
+      } catch (mkdirError) {
+        console.error('创建目录失败:', mkdirError);
+        throw new Error(`无法创建目录: ${mkdirError.message}`);
+      }
     }
     
     // 构建完整的文件路径