J'ai un projet d'électrons lorsque j'ai besoin d'obtenir des électrons pour lire un fichier local.
En ce moment, ce que j'ai, c'est où il se charge et affiche le contenu d'un fichier html.
J'en ai juste besoin pour lire un fichier et le stocker sur une variable pour l'instant.
Voici mon main.js actuel:
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;});
});
Comment puis-je faire cela car il n'affiche pas le contenu du fichier README.md dans le console.log
Fondamentalement, vous devez faire les choses suivantes.
1.Chargement des dépendances requises
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.Lisez le contenu du fichier
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.Mettez à jour le contenu du fichier existant
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");
});
Pour plus de lecture, veuillez visiter ici :) Merci ..
Une dernière chose à ajouter .. Veuillez vérifier que votre chemin d'accès au fichier est correct. Vous pouvez faire quelque chose de similaire à ci-dessous.
var path = require('path');
var p = path.join(__dirname, '.', 'README.md');
Une seule information de mise à jour pour la réponse acceptée. Après la mise à jour de l'électron, vous pouvez directement utiliser
const { dialog } = require('electron');
pour importer la boîte de dialogue.
Et pour la télécommande, si vous devez l'utiliser, vous avez également besoin de:
const { remote } = require('electron');