Несколько файлов перемещаются в другой каталог в NodeJS

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

Я попытался с несколькими пакетами, но его перемещение самой папки. но я хотел бы переместить один из файлов, содержащихся в исходном каталоге в целевой каталог.

mv('/opt/output/', '/opt/sentFiles' ,function(err) {
    var destination = path.join( '/opt/sentFiles',files[i])
}); 

Я пытался для child_process, а затем пакет MV. пакет мв работает но. Переместить исходную папку в папку назначения. на самом деле я хочу переместить файлы из исходной папки exp выход /* sentfile/*

2 ответа

Вы можете просто достичь этого, используя fs модуль, в идеале, вы должны сделать, это использовать форму функции переименования fs модуль. Существует также синхронная версия renameSync.

В соответствии с вашими требованиями, все, что вам нужно сделать, это получить список файлов, которые вы хотите переместить, и зациклить, чтобы переместить (переименовать) их.

Ниже приведен простой тестовый код, который я пытался переместить одним файлом:

var fs = require('fs');

// Assuming all files are in same folder
let files = ['test1.txt', 'test2.txt', 'test3.txt']; 

// I am using simple for, you can use any variant here
for (var i = files.length - 1; i >= 0; i--) {
    var file = files[i];
    fs.rename('./source/' + file, './dest/' + file, function(err) {
        if (err) throw err;
        console.log('Move complete.');
    });
}

//-------------------------- OUTPUT --------------------------
// Directory Structure Before Move
.
├── dest
├── index.js
├── package.json
└── source
    ├── test1.txt
    ├── test2.txt
    └── test3.txt

// Directory Structure After Move
.
├── dest
│   ├── test1.txt
│   ├── test2.txt
│   └── test3.txt
├── index.js
├── package.json
└── source

Надеюсь, поможет!

Эту задачу можно легко выполнить с помощью fs-jetpack:

      const jetpack = require("fs-jetpack");

const src = jetpack.cwd("path/to/source/folder");
const dst = jetpack.cwd("path/to/destination/folder");

// Here assuming we want to move all .txt files, but 
// of corse this can be configured in any way.
src.find({ matching: "*.txt" }).forEach(filePath => {
  src.move(filePath, dst.path(filePath));
});
Другие вопросы по тегам