当前位置: 首页 > news >正文

Electron读取本地Json文件(Win、Mac)

 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)
    })
  });

http://www.dtcms.com/a/109210.html

相关文章:

  • JSVMP逆向实战:原理分析与破解思路详解
  • day21 学习笔记
  • 【SPP】蓝牙链路控制(LC)在SPP中互操作性深度解析
  • Cron表达式
  • 什么是混杂模式?为什么 macvlan 依赖它
  • B2B2C商城系统开发:从规划到上线的全流程指南
  • 函数柯里化(Currying)介绍(一种将接受多个参数的函数转换为一系列接受单一参数的函数的技术)
  • 数字孪生在智慧城市中的前端呈现与 UI 设计思路
  • CentOS 7 镜像源失效解决方案(2025年)
  • 【Mysql】之索引详解
  • 游戏无法启动?XINPUT1_3.dll 丢失的终极解决方案
  • 国产替代新选择:CCLink IE与EtherCAT网关在制药行业的应用,配置详解
  • python之 “__init__.py” 文件
  • DeepSeek-R1 面试题汇总
  • SAP-ABAP:SAP ABAP UPDATE 语句用法详解
  • 如何像母语一样学习英语
  • VMware ESXi:企业级虚拟化平台详解
  • MySQL-- 函数(单行函数): 日期和时间函数
  • Linux内核TCP/IP协议栈中的设计模式:从面向对象到系统级软件的跨界实践
  • 数据结构——顺序表
  • 思维链(Chain-of-Thought, CoT)与强化学习区别
  • Java基础之反射的基本使用
  • linux命令-find指令
  • 卫星升空织密天网,卫星电话架起天地一体通信桥梁
  • 数据结构与算法——单链表的实现及增、插、删、查、印、毁
  • 【c++深入系列】:类与对象详解(中)
  • Golang定时任务管理(中文日志+防重复执行)
  • React 项目使用 pdf.js 及 Elasticpdf 教程
  • lvgl避坑记录
  • lodash库介绍(一个现代JavaScript实用工具库,提供模块化、性能优化和额外功能)JavaScript库(防抖、节流、函数柯里化)JS库