This commit is contained in:
chenqiang 2025-09-10 13:52:25 +08:00
parent 7f975d5d43
commit 59c67e8b24
2 changed files with 10 additions and 58 deletions

View File

@ -11,51 +11,19 @@ if (isDev) {
// 开发环境数据存储在工程的data目录 // 开发环境数据存储在工程的data目录
dataDir = path.join(process.cwd(), 'data'); dataDir = path.join(process.cwd(), 'data');
} else { } else {
try { // 生产环境(便携模式)使用resources目录下的data文件夹
// 生产环境(便携模式) dataDir = path.join(process.resourcesPath, 'data');
// 1. 获取可执行文件所在目录 }
const exePath = process.execPath;
const exeDir = path.dirname(exePath);
// 2. 检查是否在临时目录中 // 确保数据目录存在
const isTempDir = exeDir.toLowerCase().includes('temp') || exeDir.toLowerCase().includes('tmp'); if (!fs.existsSync(dataDir)) {
fs.mkdirSync(dataDir, { recursive: true });
if (isTempDir) { console.log(`创建数据目录: ${dataDir}`);
// 3. 如果在临时目录,尝试多种方式寻找真实安装路径
// - 方式1通过可执行文件名回溯
const exeName = path.basename(exePath);
// - 方式2使用用户主目录下的固定文件夹
const userDataDir = path.join(app.getPath('userData'), 'StatExamData');
// 创建用户数据目录并使用
if (!fs.existsSync(userDataDir)) {
fs.mkdirSync(userDataDir, { recursive: true });
}
dataDir = userDataDir;
console.log(`检测到临时目录环境,数据目录已切换至: ${dataDir}`);
} else {
// 直接使用可执行文件所在目录下的data文件夹
dataDir = path.join(exeDir, 'data');
}
// 确保数据目录存在
if (!fs.existsSync(dataDir)) {
fs.mkdirSync(dataDir, { recursive: true });
console.log(`创建数据目录: ${dataDir}`);
}
} catch (error) {
console.error('获取数据目录失败:', error);
// 错误情况下使用用户数据目录作为后备
dataDir = path.join(app.getPath('userData'), 'StatExamData');
if (!fs.existsSync(dataDir)) {
fs.mkdirSync(dataDir, { recursive: true });
}
}
} }
// 输出调试信息 // 输出调试信息
console.log('应用是否打包:', app.isPackaged); console.log('应用是否打包:', app.isPackaged);
console.log('资源目录路径:', process.resourcesPath);
console.log('数据目录路径:', dataDir); console.log('数据目录路径:', dataDir);
// 系统数据库路径 // 系统数据库路径
@ -68,13 +36,7 @@ function getUserDbPath() {
return path.join(dataDir, 'user.db'); return path.join(dataDir, 'user.db');
} }
// 导出获取数据目录的方法,便于调试
function getDataDir() {
return dataDir;
}
module.exports = { module.exports = {
getSystemDbPath, getSystemDbPath,
getUserDbPath, getUserDbPath
getDataDir
}; };

View File

@ -1,6 +1,6 @@
const fs = require('fs');
const path = require('path'); const path = require('path');
const { execSync } = require('child_process'); const { execSync } = require('child_process');
const fs = require('fs');
// 创建一个兼容Node.js 12的删除文件夹函数 // 创建一个兼容Node.js 12的删除文件夹函数
function deleteFolderRecursive(dir) { function deleteFolderRecursive(dir) {
@ -77,16 +77,6 @@ function buildPortableApp() {
console.log('Windows 7便携应用构建完成'); console.log('Windows 7便携应用构建完成');
console.log('构建产物位于 dist_electron 目录'); console.log('构建产物位于 dist_electron 目录');
// ===== 移除data目录复制逻辑 =====
// 构建完成后的其他处理(如果有)
console.log('便携应用构建流程完成');
console.log('data目录结构准备完成');
console.log('最终目录结构:');
console.log(`- dist_electron/`);
console.log(` - portable-app/`);
console.log(` - StatExamPortable_${require('./package.json').version}_*.exe`);
} catch (error) { } catch (error) {
console.error('构建失败:', error); console.error('构建失败:', error);
process.exit(1); process.exit(1);