Electron function to read a local file - FS - Not reading

electron, javascript, node.js

Solution

Basically you need to do the following things.

1.Loading required dependencies

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.Read file content

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.Update existing file content

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

For more read please visit here :) Thanks..

One more thing to add..Please check that your path to file is correct. You could do something similar to below.

var path = require('path');
var p = path.join(__dirname, '.', 'README.md');

Problem

I have an electron project when I need to get electron to read a local file. Right now what I have is this, where it loads and displays the contents of a html file. I just need it to read a file and store it on a variable for now. Here is my current 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;}); }); ``` How can I do this as it's not showing the contents of the README.md file in the console.log

Original source

Related problems