|
@@ -804,17 +804,33 @@ ipcMain.handle("downloadFile", async (event, message) => {
|
|
|
// 确定保存路径
|
|
// 确定保存路径
|
|
|
let saveDir;
|
|
let saveDir;
|
|
|
if (customPath) {
|
|
if (customPath) {
|
|
|
- // 使用自定义路径
|
|
|
|
|
- saveDir = path.join(__dirname.replaceAll('\\', '/').replace('/resources/app.asar', ''), 'download/') + customPath;
|
|
|
|
|
|
|
+ saveDir = customPath;
|
|
|
} else {
|
|
} 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)) {
|
|
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}`);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 构建完整的文件路径
|
|
// 构建完整的文件路径
|