使用Electron,当用户点击本地文件时我可以找到它的扩展名吗?

问题描述 投票:0回答:1

我正在使用 Electron、React 和 TypeScript 创建一个桌面应用程序。我的应用程序在后台运行,当用户单击图像文件或任何文件时,我想知道该文件的扩展名。这可能吗?如果可以的话请告诉我有什么办法吗

我寻找的方法是 Electron app.on("open-file"),但我不确定这是否一定能解决我的问题,而且我也不知道如何使用它。

reactjs electron
1个回答
0
投票

如果“单击文件时”的意思是“在我的 Electron 应用程序中打开文件时”,则需要将应用程序注册为文件类型的处理程序,然后监听

"open-file"
事件。

将应用程序注册为某些文件类型的潜在处理程序是您在打包应用程序以供发布时定义的内容,例如通过在 Electron Builder 中使用

fileAssociations
,但最终取决于系统和您的用户是否想要使用您的应用程序作为您计划支持的文件类型的默认处理程序。

要实际响应事件,来自

documentation of the "open-file"

app 事件
 表示对侦听器的回调将提供事件对象和正在打开的文件的路径(作为字符串):

app.on("open-file", (event, path: string) => { console.log(path); });
至于如何从路径中获取扩展名,这取决于您想要和需要的正确程度:

    如果您
  • 知道您总是会得到一个带有扩展名的文件,则只需用“.”分隔字符串即可。并获取最后一段。
  • 如果你
  • 知道你总会得到一个文件,你可以用“/”分割字符串并获取最后一段来查找文件名,然后按照上面的方法分割它。
  • 如果您不知道用户将尝试输入什么内容作为要打开的内容(带或不带扩展名的文件或目录路径),最好从字符串中
  • 创建路径对象并以这种方式查询扩展名
© www.soinside.com 2019 - 2024. All rights reserved.