ローカルファイルを読み込むためにelectronを取得する必要がある場合、electronプロジェクトがあります。
今私が持っているのはこれで、htmlファイルの内容をロードして表示します。
今のところ、ファイルを読み取って変数に保存するために必要なだけです。
これが私の現在のmain.jsです:
const {app, BrowserWindow } = require('electron');
const path = require('path');
const url = require('url');
var fs = require('fs');
let mainWindow;
function createNewWindow() {
mainWindow = new BrowserWindow({
width: 1300,
height: 1000,
minWidth: 600,
minHeight: 400,
title: 'Test App'
})
}
function loadInitialUrl() {
mainWindow.loadURL(url.format({
pathname: path.join(__dirname, 'index.html'),
protocol: 'file:',
slashes: true
}))
}
function closeApplication() {
mainWindow.on('closed', () => {
mainWindow = null;
})
}
app.on('ready', function(){
createNewWindow();
loadInitialUrl();
mainWindow.setMenu(null);
mainWindow.openDevTools();
fs.readFile('./README.md', 'utf8', function (err,data) {
if (err) {
return console.log(err);
}
console.log(data);
});
mainWindow.on('closed', function() {mainWindow = null;});
});
Console.logにREADME.mdファイルの内容が表示されないため、どうすればよいですか
基本的に、次のことを行う必要があります。
1.必要な依存関係の読み込み
var remote = require('remote'); // Load remote compnent that contains the dialog dependency
var dialog = remote.require('dialog'); // Load the dialogs component of the OS
var fs = require('fs'); // Load the File System to execute our common tasks (CRUD)
2.ファイルの内容を読む
dialog.showOpenDialog((fileNames) => {
// fileNames is an array that contains all the selected
if(fileNames === undefined){
console.log("No file selected");
return;
}
fs.readFile(filepath, 'utf-8', (err, data) => {
if(err){
alert("An error ocurred reading the file :" + err.message);
return;
}
// Change how to handle the file content
console.log("The file content is : " + data);
});
});
3.既存のファイルコンテンツを更新する
var filepath = "C:/Previous-filepath/existinfile.txt";// you need to save the filepath when you open the file to update without use the filechooser dialog againg
var content = "This is the new content of the file";
fs.writeFile(filepath, content, (err) => {
if (err) {
alert("An error ocurred updating the file" + err.message);
console.log(err);
return;
}
alert("The file has been succesfully saved");
});
詳細については、 こちら をご覧ください。ありがとうございます。
もう1つ追加します。ファイルへのパスが正しいことを確認してください。以下のようなことができます。
var path = require('path');
var p = path.join(__dirname, '.', 'README.md');
受け入れられた回答の更新情報を1つだけ。 electronの更新後、直接使用できます
const { dialog } = require('electron');
ダイアログをインポートします。
また、リモートで使用する必要がある場合は、次も必要です。
const { remote } = require('electron');