Javascript 无法将文件复制到Node.js中的未知目录

Javascript 无法将文件复制到Node.js中的未知目录,javascript,node.js,npm,filesystems,Javascript,Node.js,Npm,Filesystems,大家好,在上面的代码中,我只想复制“toFiles”文件夹中不存在的文件。 但是我有一个问题,如果我尝试用fsPath npm包来做这件事,它会发出这样的错误:“Error:enoint:没有这样的文件或目录”。通常,如果没有父文件夹,包应该创建父文件夹。但不知怎么的,它不起作用。有人能看管一下代码并尝试修复它吗?非常感谢。文件夹不存在,您可以先使用mkdir创建文件夹: const { resolve } = require("path"); const prompt =

大家好,在上面的代码中,我只想复制“toFiles”文件夹中不存在的文件。
但是我有一个问题,如果我尝试用fsPath npm包来做这件事,它会发出这样的错误:“Error:enoint:没有这样的文件或目录”。通常,如果没有父文件夹,包应该创建父文件夹。但不知怎么的,它不起作用。有人能看管一下代码并尝试修复它吗?非常感谢。

文件夹不存在,您可以先使用
mkdir
创建文件夹:

const { resolve } = require("path");
const prompt = require('prompt');
const fsPath = require('fs-path');

// Get files from Dir
const getFiles = dir => {
  const stack = [resolve(dir)];
  const files = [];
  while (stack.length) {
    dir = stack.pop();
    fs.readdirSync(dir).forEach(item => {
      const path = resolve(dir, item);
      (fs.statSync(path).isDirectory() ? stack : files).push(path);
    });
  }
  return files;
};

prompt.start();

// Prompt for Dir
prompt.get(['from', 'to'], async(err, res) => {
    if (err) {
        return console.log(err);
    } else {
        let fromFiles = await getFiles(String(res.from));
        let toFiles = await getFiles(String(res.to));
        let isEqual = JSON.stringify(fromFiles) == JSON.stringify(toFiles);
        let out = res.to;
        
        if (isEqual) {
            return console.log('Both folders are same. Try it with an other folder!');
        } else {
            let dif = [];
            // Check differences -> to path
            await fromFiles.forEach(path => {
                if (!toFiles.includes(path)) {
                    dif.push(path)
                }
            });

            dif.forEach(difference => {
                fsPath.copy(`${difference}`, `${out + difference.split(__dirname)[1]}`, (error) => {
                    if (error) {
                        console.log(error);
                    } else  {
                        console.log('Successfully copied item.')
                    }
                });
            });
        }
    }
});

我知道文件夹不存在,但fsPath应该自己做。如何在代码中实现您的功能?谢谢,它有一个递归创建目录的方法。也许你不需要这么做,因为。
fsPath.mkdir(String(res.to), { recursive: true }, (err) => {
  if (err) throw err;
  // code
});