【问题标题】:Opening files with electron用电子打开文件
【发布时间】:2016-12-11 10:01:10
【问题描述】:

我正在开发一个简单的电子文本编辑器,它应该执行基本的 CRUD 操作。

我能够使用 FS 节点模块读取和写入文件,并且我可以通过电子对话框轻松获取文件的路径。我希望我的用户能够使用该程序打开一个 .txt 文件,但不要求他或她先启动该程序然后选择该文件。

假设您的桌面上有一个文本文件,您将所有 .txt 文件设置为使用 myAmazingTextEditor 打开,因此当您双击它时,它会打开应用程序并在文本区域中显示文件的内容。

基本上,我的问题是处理传入的文件。如何检查应用是否被文件打开?

非常感谢大家!

【问题讨论】:

  • 传入文件的文件URL是否通过argv
  • 通常,操作系统将文件路径作为第一个命令行参数传递,应该可以通过process.argv获得。
  • @still_learning 有趣的是,我不知道process.argv,但感谢您引起我的注意。在我们说话的时候,我正在深入研究文档:)
  • 你有什么解决办法吗?如果是这样,请您分享并接受您自己的答案,我正在努力解决同样的问题:-\

标签: javascript node.js electron


【解决方案1】:

我在使用 Electron 构建应用程序时遇到了同样的问题。我设法在this 网站上找到了解决方案:

主要是:

// read the file and send data to the render process
ipcMain.on('get-file-data', function(event) {
  var data = null
  if (process.platform == 'win32' && process.argv.length >= 2) {
    var openFilePath = process.argv[1]
    data = openFilePath
  }
  event.returnValue = data
})

在渲染器中:

var data = ipcRenderer.sendSync('get-file-data')
if (data ===  null) {
    console.log("There is no file")
} else {
    // Do something with the file.
    console.log(data)
}

【讨论】:

    猜你喜欢
    • 2018-02-03
    • 1970-01-01
    • 1970-01-01
    • 2018-09-19
    • 2012-01-30
    • 1970-01-01
    • 2012-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多