如何使用Node.js按类型移动多个文件

时间:2018-05-17 18:34:17

标签: node.js fs

我正在尝试使用Node.js将多个文件从一个位置移动到另一个位置而不使用导入的第三部分模块(一直尝试使用fs.rename)。 cmd上的类似函数[002] 0141 // subscribe to "A" [002] 0142 // subscribe to "B" [007] B-91164 [007] B-12979 [007] A-52599 [007] A-06417 [007] A-45770 [002] 0041 // unsubscribe to "A" [002] 0042 // unsubscribe to "B"

  

使用此功能可以完美地移动一个文件:

move *.txt c:\Users\Me\Documents
  

但是,我想移动没有第三方模块的所有文件或   构建一个JSON对象。可能吗?我的想法是这样的   这(文档说明参数1和2需要是字符串):

const fs = require('fs');

fs.rename('./text.txt', './dir/text.txt', err => {
  if (err) throw err;
  console.log('Move complete!');
})

2 个答案:

答案 0 :(得分:0)

fs.rename()仅适用于单个文件。要移动多个文件,您必须自己编写逻辑。一种方法是构建要移动的文件列表,然后迭代该列表,并一次rename()一个。

答案 1 :(得分:0)

从目录中读取所有文件并检查文件扩展名&使用循环逐个移动它们。

示例代码:

const fs = require('fs');
const path = require('path');

fs.readdir('<PATH>', (err, files) => {

  files.forEach(file => {
     if (path.extname(file) === '.txt') {
           fs.rename(file, '<NEW_PATH>', err => {
               if (err) throw err;
               console.log('Moving ' + file);  
           });
     }

  })
})