node.js 如何将一个文件夹里面所有的文件剪切到另一个文件夹下

如何将viewsdev/node_modules里面的文件包括node_modules剪切到另外的目录下面

  const path = require('path');
  const fs = require('fs');
 let modules = path.join(__dirname,'viewsdev/node_modules');
 let newModules = path.resolve(__dirname,'../../../node_modules');
 fs.rename(modules,newModules,function(err){
    if(err){
       console.log(err) 
    }
})

用fs.rename 会报EPERM: operation not permitted node的错误

阅读 8.6k
3 个回答

自己手写很累, 直接用 库(shelljs) 吧 :

/**
* index.js
* 移动当前目录下指定文件夹中的文件到上一层,并删除该文件夹
*/

// nodejs 获得当前目录下文件名
const fs = require('fs')
const files = fs.readdirSync('./')

// 判断是否是文件夹
// 参考 : https://blog.csdn.net/qq_37899792/article/details/105512853
function isDirectory(fileName) {
    const stat = fs.lstatSync(fileName);
    return stat.isDirectory()
}

const shell = require('shelljs');

for (let index = 0; index < files.length; index++) {
    const path = files[index];
    if(isDirectory(path) && path !== 'node_modules'){
        shell.cp('-r', path + '/*', './');
        // shell.rm('-r', path);
    }
}

注意 '/*''/' 是存在区别的


PS : 手写思路参考

是不是权限的问题

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题