电子功能读取本地文件-FS-不读取 [英] Electron function to read a local file - FS - Not reading

查看:61
本文介绍了电子功能读取本地文件-FS-不读取的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我需要获取电子以读取本地文件时,我有一个电子项目。

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.

这是我当前的main.js:

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

如何执行此操作,因为它未在控制台中显示README.md文件的内容。日志

How can I do this as it's not showing the contents of the README.md file in the console.log

推荐答案

基本上,您需要执行以下操作。

Basically you need to do the following things.

1.加载所需的依赖项

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。读取文件内容

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。更新现有文件内容

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

这篇关于电子功能读取本地文件-FS-不读取的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆