当前位置: 首页 > 面试题库 >

电子功能读取本地文件-FS-不读取

庄星汉
2023-03-14
问题内容

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

现在我所拥有的就是它,它在其中加载并显示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");
});

欲了解更多信息,请访问这里 :)谢谢..

还需要添加一件事。请检查文件路径是否正确。您可以执行以下类似操作。

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


 类似资料:
  • 问题内容: 如何使用JQuery.getJSON()读取当前目录中的文件? 我正在尝试一些简单的操作(将data.json文件与html文件放在同一目录中): 我得到错误: XMLHttpRequest无法加载file:/// C:/Projects/test/data.json。Access-Control-Allow- Origin不允许使用Origin null。 我尝试了各种路径组合,但似

  • 我试图通过创建一个函数来编写一个简单的文本文件阅读器,该函数接受文件的路径并将每行文本转换为char数组,但它不起作用。 这里出了什么问题? 从以前的修订版更改了一点代码后,这似乎仍然不起作用,现在它给我一个异常101。 我在Firefox上测试过这个功能,它可以工作,但在Google Chrome上它就是不工作,它一直给我一个异常101。我如何让它不仅适用于Firefox,还适用于其他浏览器(尤

  • 问题内容: 我正在尝试通过创建一个接受文件路径并将文本的每一行转换为char数组的函数来编写一个简单的文本文件阅读器,但是它不起作用。 这是怎么了? 从先前的版本中稍稍更改了代码后,这似乎仍然不起作用,现在给了我一个例外101。 我已经在Firefox上对其进行了测试,并且可以工作,但是在Google Chrome中它却无法工作,并且一直给我一个异常101。如何使它不仅可以在Firefox上而且还

  • 不检测OWLAPI5库中turtle格式(.ttl文件扩展名)的本体。 在下面的代码中,ontologyIRIs变量不包含任何文件扩展名为.ttl的本体。它只包含.owl本体。

  • 问题内容: [编辑] 我使用 D3 解决了这个问题,不用了,谢谢! 所以我有一个看起来像这样的csv文件,我需要将本地csv文件导入到我的客户端javascript中: 我最终需要解析它并输出如下内容: 但就目前而言,我仍然只是将其导入javascript。 我当前的代码如下所示: 我已经研究并找到了一些关于的有用链接,但是我是javascript的新手,我并不完全了解它。我应该使用Ajax吗?F

  • 问题内容: 我正在使用Angular 5,并且已经使用angular-cli创建了服务 我想要做的是创建一个为Angular 5读取本地json文件的服务。 这就是我所拥有的…我有点卡住了… 我该如何完成? 问题答案: 首先,你必须注入和不,你必须删除第二件事,你将不再需要它了,因为新会给你默认响应的身体,最后确保你输入你的 : 将此添加到您的组件: