0

只是想知道是否有人曾尝试将目录从外部驱动器(通过 USB 连接)复制到本地文件夹。

我正在使用 ElectronJS,因此我可以使用我的 JavaScript、HTML/CSS 技能来创建桌面应用程序,而无需使用 C 语言。(即 C# 或 C++) 有了 ElectronJS 就不用担心太多了。

这是我到目前为止尝试过的事情的清单:

  • 基本的 fs.copyFile(最初使用 copyFile,然后循环目录以复制所有文件)

     var fs = require('fs');
    
     window.test = () => {
    
     fs.moveSync("targetFile","destDir", function(err) {
         if(err){
           console.log(err);
         }else{
           console.log("copy complete")
         }
       });
      }
    

即使在我输入 fs 时 Visual Studio Code 提出了 moveSync 作为建议,fs.moveSync 也不是一个函数。(Ctrl + 空格)

  • 使用 child_process 函数使用命令行复制文件。代码是:

     var process = require('child_process')
    
     window.test = function(){
     process.exec('ipconfig', function(err, stdout, stderr){
         if(err){
             console.log(err);
         }else{
             console.log(stdout)
         }
     })
    }
    

然后与browserify捆绑在一起。然后将 Bundle.js 导入到 html 文件中,然后单击按钮调用测试函数。我知道命令是 ipconfig 现在,这只是用来查看是否可以执行命令。看起来它可能是因为我得到了 process.exec 没有定义。

  • 使用 node-hid 节点模块从外部驱动器读取和传输数据。

此模块中的公开函数也被报告为未定义。而且我考虑用例的时间更长,我认为一个简单的复制过程就足够了,因为可以像文件资源管理器中的任何其他文件夹一样访问外部驱动器。

不幸的是,以上所有方法都失败了,我花了一天的大部分时间寻找替代模块和/或解决方案。

提前感谢,因为任何帮助实现这一点将不胜感激。

谢谢

帕特里克

4

2 回答 2

0

npm 包fs-extra应该可以解决您的问题。

它具有以下move功能,即

移动文件或目录,甚至跨设备

于 2021-05-27T15:30:48.200 回答
0

最后将此添加到我的 preload.js 中:

window.require = require;

它现在可以使用,但会贬值。我将暂时使用它,并在必要时进行其他更新。

于 2021-06-07T14:43:49.340 回答