双击电子生成器打开时获取关联文件的路径
Get path of associated file when opened on double click Electron builder
信息:
- OS: windows 10
- 电子版:最新
- Electron Builder 版本:最新
我正在尝试制作一个可以编辑 .txt
文件的应用程序。我想在使用应用程序打开文本文件时获取它的路径(即用户选择使用我的应用程序打开 .txt
)。我在 package.json
的 build
中包含了以下内容:
"fileAssociations": [
{
"name": "Text Files",
"description": "Plain Text File",
"ext": [
"txt"
]
}
],
这会使应用程序打开文件,但是如何获取用于打开应用程序的文件的路径。我知道我必须用 process.argv
做点什么,但是我不知道如何使用它。我尝试了以下但没有成功:
ipcMain.on('get-file-data', function(event) {
var data = null;
if (process.platform == 'win32' && process.argv.length >= 2) {
var openFilePath = process.argv[1];
console.log(data)
win.webContents.send('openFile', openFilePath)
}
});
如何获取文件的路径?
这是整个process
的日志。正如我们在这里看到的,第二个 argv 是输入文件路径的路径。所以 process.argv[1]
就足够了文件路径。不知道为什么你找不到路径。
也许这来自您的 ipc 事件侦听器。这意味着 get-file-data
未正确触发。
如下图所示,我在此浏览器控制台中显示了此过程变量。这是我将 process
变量暴露给渲染器的方式。但这只是为了调试!建议不要在您的作品中这样做。
preload.js
process.once("loaded", () => {
window.process = process;
});
main.js
mainWindow = new BrowserWindow({
width: 1024,
height: 728,
minWidth: 800,
minHeight: 750,
webPreferences: {
enableRemoteModule: true,
preload: path.join(__dirname, "preload.js"),
}
});
您可以在渲染器上使用 window.process
或 process
我设法获得了以下路径:
const { remote } = require('electron');
console.log(remote.process.argv[1])
此returns用于打开应用程序的文件的路径!
信息:
- OS: windows 10
- 电子版:最新
- Electron Builder 版本:最新
我正在尝试制作一个可以编辑 .txt
文件的应用程序。我想在使用应用程序打开文本文件时获取它的路径(即用户选择使用我的应用程序打开 .txt
)。我在 package.json
的 build
中包含了以下内容:
"fileAssociations": [
{
"name": "Text Files",
"description": "Plain Text File",
"ext": [
"txt"
]
}
],
这会使应用程序打开文件,但是如何获取用于打开应用程序的文件的路径。我知道我必须用 process.argv
做点什么,但是我不知道如何使用它。我尝试了以下但没有成功:
ipcMain.on('get-file-data', function(event) {
var data = null;
if (process.platform == 'win32' && process.argv.length >= 2) {
var openFilePath = process.argv[1];
console.log(data)
win.webContents.send('openFile', openFilePath)
}
});
如何获取文件的路径?
这是整个process
的日志。正如我们在这里看到的,第二个 argv 是输入文件路径的路径。所以 process.argv[1]
就足够了文件路径。不知道为什么你找不到路径。
也许这来自您的 ipc 事件侦听器。这意味着 get-file-data
未正确触发。
如下图所示,我在此浏览器控制台中显示了此过程变量。这是我将 process
变量暴露给渲染器的方式。但这只是为了调试!建议不要在您的作品中这样做。
preload.js
process.once("loaded", () => {
window.process = process;
});
main.js
mainWindow = new BrowserWindow({
width: 1024,
height: 728,
minWidth: 800,
minHeight: 750,
webPreferences: {
enableRemoteModule: true,
preload: path.join(__dirname, "preload.js"),
}
});
您可以在渲染器上使用 window.process
或 process
我设法获得了以下路径:
const { remote } = require('electron');
console.log(remote.process.argv[1])
此returns用于打开应用程序的文件的路径!