如何仅将文件夹从目录复制到另一个目录

时间:2020-10-03 20:50:21

标签: node.js

我正在使用ncp插件将某个目录中的某些文件夹复制到另一个目录中,源目录中也包含一些文件,因此我只想复制其中的文件夹及其内容,这就是我尝试的做法:

async function copyAssets(exportFolderName) {
  const assets = glob.sync("**/", { cwd: distPath });
  return Promise.all(
    assets.map((asset) => {
      return ncpPromise(path.join(distPath, asset), path.join(exportPath, exportFolderName), {
        clobber: false,
      });
    })
  );
}

我在这里要做的是,使用distPathglob.sync中获得文件夹名称,然后将每个文件夹及其内容复制到exportPath + exportFolderName中。

我的源文件夹如下:

enter image description here

但是我得到了一些奇怪的结果:

enter image description here

您可以看到没有复制文件夹,而是复制了文件夹的内容。

我该如何解决?

预先感谢

1 个答案:

答案 0 :(得分:1)

我只是尝试使用'glob'和'ncp'模块,这是我的一点理解-

  • glob.sync('**/')递归获取目录名称
  • glob.sync('*/')以非递归方式获取目录名称

由于您要从源目录中排除文件,而是整体复制所有目录,所以我认为您应该使用后者glob.sync

现在,与ncp一起玩-

  • ncp(source, destination)将源中的所有文件/目录复制到目标目录

所以,我猜,以下方法对您有用- ncp(path.join(distPath, asset), path.join(exportPath, exportFolderName, asset))

这应该创建源资产目录,然后将文件放入其中。

相关问题