data path

This commit is contained in:
chenqiang 2025-09-10 06:10:24 +08:00
parent d9e7c04453
commit c028846dd3
2 changed files with 26 additions and 34 deletions

View File

@ -1,4 +1,4 @@
const path = require('path'); // 添加缺失的path模块导入
const path = require('path');
const fs = require('fs');
const { app } = require('electron');
@ -8,49 +8,40 @@ const isDev = process.env.NODE_ENV === 'development' || !app.isPackaged;
// 检测是否为便携模式
let isPortable = false;
let appDir;
if (!isDev) {
const exePath = app.getPath('exe');
appDir = path.dirname(exePath);
// 检查应用目录下是否存在portable.txt文件
const portableFlagPath = path.join(appDir, 'portable.txt');
if (fs.existsSync(portableFlagPath)) {
isPortable = true;
console.log('启用便携模式');
}
// 如果可执行文件在portable-app目录中也认为是便携模式
if (path.basename(appDir) === 'portable-app') {
isPortable = true;
console.log('检测到可执行文件在portable-app目录中启用便携模式');
}
}
// 根据模式选择数据目录
let dataDir;
if (isDev) {
// 开发环境数据存储在工程的data目录
dataDir = path.join(process.cwd(), 'data');
} else if (isPortable) {
// 便携模式:
// 如果可执行文件在portable-app目录中则数据目录与portable-app目录同级
} else {
// 非开发环境:确定应用目录
const exePath = app.getPath('exe');
appDir = path.dirname(exePath);
// 检测是否存在便携模式标记文件
const portableFlagPath = path.join(appDir, 'portable.txt');
if (fs.existsSync(portableFlagPath)) {
isPortable = true;
}
// 关键修改在便携模式下data目录与可执行文件同级
// 如果可执行文件在portable-app目录中则data目录与portable-app目录同级
if (path.basename(appDir) === 'portable-app') {
dataDir = path.join(path.dirname(appDir), 'data');
isPortable = true;
} else {
// 否则数据存储在应用目录下的data文件夹
// 否则data目录与可执行文件同级
dataDir = path.join(appDir, 'data');
}
// 确保便携模式标记文件存在
const portableFlagPath = path.join(path.dirname(dataDir), 'portable.txt');
if (!fs.existsSync(portableFlagPath)) {
fs.writeFileSync(portableFlagPath, '');
console.log('创建便携模式标记文件');
// 确保便携模式标记文件存在于data目录同级
if (isPortable) {
const flagDir = path.dirname(dataDir);
const flagPath = path.join(flagDir, 'portable.txt');
if (!fs.existsSync(flagPath)) {
fs.writeFileSync(flagPath, '');
}
}
} else {
// 非便携模式数据存储在应用同级的data目录
dataDir = path.join(appDir, 'data');
}
// 确保数据目录存在

View File

@ -84,7 +84,8 @@ function buildPortableApp() {
const projectRoot = __dirname;
const buildDir = path.join(projectRoot, 'dist_electron');
const portableAppDir = path.join(buildDir, 'portable-app');
const destDataDir = path.join(buildDir, 'data'); // data目录与portable-app目录同级
// 修改data目录放入portable-app目录内
const destDataDir = path.join(portableAppDir, 'data');
// 确保目标data目录存在
if (!fs.existsSync(destDataDir)) {