嗯,我正在开发一个可以改善公司工作的应用程序。为此,我需要创建、保存和读取一个没有对话框的文件。
我在文档和互联网的帮助下创建了以下代码:
const electron = require('electron');
let fs = require('fs'), app = electron.remote;
let localData, fileName = "appdata.json";
function loadAppData() {
fs.readFile(fileName, (err, data) => {
if (err) {
console.log("There was a problem reading the data!");
// console.log(err);
} else {
console.log("Data loaded!");
localData = JSON.parse(data);
console.log(localData);
}
});
}
function saveAppData(content) {
content = JSON.stringify(content);
fs.writeFile(fileName, content, (err) => {
if (err) {
console.log("There was a problem saving data!");
// console.log(err);
} else {
console.log("Data saved correctly!");
loadAppData();
}
});
}
function initappData() {
if (fs.existsSync(fileName)) {
console.log("File detected, loading");
loadAppData();
} else {
let defData = {
"patients": [],
"actions": [],
"visits": []
};
console.log("No file! I create! Saving! Loading!");
saveAppData(defData);
}
}
initappData();
我有一个问题,因为如果脚本在本地版本上工作,在MacOS上构建应用程序后(使用electron-builder),控制台中会出现错误:“写入数据时出现问题!"。显示错误内容后出现:错误:EROFS:只读文件系统,请打开'appdata.json'。
我检查了权限,我检查了其他位置-仍然一样:(我在网上寻找解决方案,但不幸的是没有解决问题。
有人遇到过这样的问题吗?
1条答案
按热度按时间ctehm74n1#
编译后,资源将被打包到
asar
文件中,但这只是read-only
。您不能修改asar
中的文件。如果我是你,我会把
appData.json
存储在Application Support
,我认为这是应用程序常用的配置。您可以使用此函数获取
Application Data
路径。