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");// 解析JSONconst 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)})});