data path
This commit is contained in:
parent
b8fe9a4093
commit
6402c4b78d
@ -11,19 +11,51 @@ if (isDev) {
|
|||||||
// 开发环境:数据存储在工程的data目录
|
// 开发环境:数据存储在工程的data目录
|
||||||
dataDir = path.join(process.cwd(), 'data');
|
dataDir = path.join(process.cwd(), 'data');
|
||||||
} else {
|
} else {
|
||||||
// 生产环境(便携模式):使用resources目录下的data文件夹
|
try {
|
||||||
dataDir = path.join(process.resourcesPath, 'data');
|
// 生产环境(便携模式):
|
||||||
}
|
// 1. 获取可执行文件所在目录
|
||||||
|
const exePath = process.execPath;
|
||||||
|
const exeDir = path.dirname(exePath);
|
||||||
|
|
||||||
// 确保数据目录存在
|
// 2. 检查是否在临时目录中
|
||||||
if (!fs.existsSync(dataDir)) {
|
const isTempDir = exeDir.toLowerCase().includes('temp') || exeDir.toLowerCase().includes('tmp');
|
||||||
|
|
||||||
|
if (isTempDir) {
|
||||||
|
// 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 });
|
fs.mkdirSync(dataDir, { recursive: true });
|
||||||
console.log(`创建数据目录: ${dataDir}`);
|
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);
|
||||||
|
|
||||||
// 系统数据库路径
|
// 系统数据库路径
|
||||||
@ -36,7 +68,13 @@ 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
|
||||||
};
|
};
|
Loading…
Reference in New Issue
Block a user