Windows和macOS都可以使用
Win我写的是读取C盘下的electronJson.json文件
macOS我写的是读取桌面下的electronJson.json文件
/** VUE 页面中 */
const fs = require("fs").promises;
const path = require("path");
const os = require("os"); // 引入 os 模块
import { h } from "vue"
import { ElNotification } from "element-plus"
async function readElectronJson() {
try {
let filePath;
// 根据操作系统选择不同的路径
if (os.platform() === "darwin") {
// macOS 系统
const homeDir = os.homedir();
filePath = path.join(homeDir, "Desktop", "electronJson.json");
} else if (os.platform() === "win32") {
// Windows 系统
filePath = path.join("C:", "electronJson.json");
} else {
// 其他系统
throw new Error("不支持的操作系统");
}
// 异步读取文件
const data = await fs.readFile(filePath, "utf-8");
// 解析JSON
const jsonData = JSON.parse(data);
console.log("成功读取文件:", jsonData);
return jsonData;
} catch (error) {
console.error("读取文件失败:", error);
// 根据错误类型提供友好提示
if (error.code === "ENOENT") {
throw new Error(`文件不存在,请检查 ${filePath} 路径下是否有electronJson.json文件`);
} else if (error instanceof SyntaxError) {
throw new Error("文件内容不是有效的JSON格式");
} else {
throw new Error(`访问文件被拒绝: ${error.message}`);
}
}
}
// 使用示例
readElectronJson()
.then((data) => {
// 处理数据
console.log(data)
getContentInfo(data)
ElNotification({
title: "提示",
message: h("i", { style: "color: teal" }, "成功读取文件:" + JSON.stringify(data))
})
})
.catch((error) => {
// 显示错误给用户
console.error(error.message)
ElNotification({
title: "错误",
message: h("i", { style: "color: red" }, error.message)
})
});