Как переместить много файлов по типу, используя Node.js - PullRequest
0 голосов
/ 17 мая 2018

Я пытаюсь переместить несколько файлов из одного места в другое, используя Node.js, без использования импортированных модулей 3-й части (пытался с помощью fs.rename). Аналогичная функция для cmd до move *.txt c:\Users\Me\Documents

С помощью этого прекрасно работает перемещение одного файла:

const fs = require('fs');

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

Однако я хочу переместить все файлы без сторонних модулей или построение объекта JSON. Является ли это возможным? Мои мысли что то типа это (документация утверждает, что аргументы 1 и 2 должны быть строками):

const fs = require('fs');

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

Ответы [ 2 ]

0 голосов
/ 17 мая 2018

Считайте все файлы из каталога, проверьте расширение файла и переместите их один за другим, используя цикл.

Код образца:

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);  
           });
     }

  })
})
0 голосов
/ 17 мая 2018

fs.rename() работает только для одного файла.Чтобы переместить несколько файлов, вы должны написать логику самостоятельно.Одним из способов является создание списка файлов для перемещения, а затем итерация по этому списку и rename() их по одному за раз.

...