是否可以将远程文件从 Electron App 拖到文件系统上?

Posted

技术标签:

【中文标题】是否可以将远程文件从 Electron App 拖到文件系统上?【英文标题】:Is it possible to drag a remote file out of Electron App onto the file system? 【发布时间】:2017-08-29 18:55:04 【问题描述】:

我一直在使用 Electron 应用程序的文件系统拖放功能,并且没有遇到任何问题,可以让所有内容都与本地文件一起使用。我在文档中没有遇到任何内容,所以我想看看是否有人知道这是否可能。 我想使用 Electron 中的拖出功能将远程文件拖出应用程序并拖到文件系统上。

具体例子: 我正在开发的程序是一个远程文件管理工具——类似于 Dropbox。我想将代表远程文件的 dom 元素拖到 Finder(或 Windows 资源管理器)窗口,并让 Electron 将文件下载到该位置。

只要文件按照 Electron 文档存储在本地,我就能让它工作。 http://electron.atom.io/docs/all/#dragging-files-out-of-the-window

我可以设想两种可能的解决方案:

electron 是否能够将 DownloadItem 或 URL 传递给“startDrag”事件(如上面链接中所引用的)? 是否可以监听某种“丢弃”并获取我的 dom 元素被丢弃的本地文件系统路径?例如,/Users/proile/Desktop?我可以使用我现有的下载方法将文件下载到该特定路径。

对如何实现我的目标有任何想法吗?非常感谢您的宝贵时间。

【问题讨论】:

我在同一条船上。找到任何解决方案? 在官方 repo 中发布了一个 GitHub 问题:github.com/electron/electron/issues/11691 ***.com/questions/49134283/… 提出了同样的问题。运气好吗? 【参考方案1】:

我还没有看到任何此类功能的示例——但看起来并不难拼凑起来(著名的遗言......)

    您在远程文件的 UI 中有您的表示,并且可以将这些表示“拖动”到桌面。 当用户拖动其中一种表示时,您会捕捉到目标目的地 您开始下载相关文件并将其保存到目标位置

至少我会这样开始处理它。 有各种与电子相关的库处理下载(例如electron-dl)。如果你得到这个工作,报告回来并分享详细信息。

【讨论】:

非常感谢您的回复!这对我来说很有意义......当用户在程序之外(在文件系统上)进行“放置”时,我真的很难获得目标目的地。我的事件永远不会触发。如果我能得到本地路径,我会很高兴。您是否有任何工作代码可以拉出目标目的地? 我不需要这样做,所以我没有任何代码。四处闲逛我看到了这个 - 它有效:Drag out files like Gmail - 但它是 7 年前的,所以现在谁知道。 “当用户拖动这些表示之一时,您会捕获目标目的地”据我所知,这对于电子是不可能的。我在这里创建了同样的问题,但还没有运气***.com/questions/49134283/… 如果有人知道如何“当用户拖动其中一个表示时,您会捕捉到目标目的地”,请让全世界都知道

以上是关于是否可以将远程文件从 Electron App 拖到文件系统上?的主要内容,如果未能解决你的问题,请参考以下文章

在Electron中打包的Angular app中运行shell脚本

Electron.js:需要远程模块不会让脚本工作

是否可以将 Electron 应用程序和数据文件嵌入到单个可执行文件中?

将文件从浏览器拖到桌面

如何从 Windows 上下文菜单启动 Electron-app

将大型虚拟文件从 C# 拖放到 Windows 资源管理器