Каков наилучший способ скопировать файлы из двух разных папок в новую с помощью javascript?

Я настраиваю программу, которая будет проверять две разные папки и копировать все файлы из третьей. Проблема для меня здесь в том, как скопировать их без их имен?

var fs = require("fs");

fs.renameSync("/home/oem/git/test/folder1/test1.js", "/home/oem/git/test/folder1/test1CHANGED.js")

console.info("file renamed");

fs.rename("/home/oem/git/test/folder1/test2", "/home/oem/git/test/folder2", function(err){
    if (err)
    {
        console.info(err);
    }
    else
    {
        console.info("file moved successfully");
    }
});

с помощью приведенного выше кода я могу перемещать файлы, имена которых я записываю вручную, я хочу как-то реализовать это, чтобы он автоматически сканировал папку и менял их на другие!

Привет, Жоао! Предложите дополнительную информацию о структуре папок, типах файлов, коде, который у вас есть, который вы хотите добавить к этой функции, и, пожалуйста, попробуйте проверить правила сообщества, чтобы задать вопрос stackoverflow.com/help/как спросить :)

Ahm. 14.02.2019 09:16

@Ахм. спасибо, я здесь новенький, поэтому мне, вероятно, нужно многому научиться, прежде чем задавать вопросы =)

joao 14.02.2019 09:29
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
43
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Вы должны взглянуть на документы узлов, где это упоминается более подробно

Если я могу предположить, что есть две папки folder1 и folder2

folder1 где есть файл word.txt и folder2 пусто

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

const fs = require('fs');

// destination.txt will be created or overwritten by default.
// you can do the renaming here
fs.copyFile('./folder1/word.txt', './folder2/destination.txt', (err) => {
  if (err) throw err;
  console.info('word.txt was copied to destination.txt');
});

еще раз спасибо, я переформулировал свой вопрос и получил ответы, которые мне были нужны. надеюсь у тебя хороший день!

joao 14.02.2019 10:00

Самый быстрый способ скопировать файл

const fs = require('fs');

function copies(fs, files, destination)
{
  for (i=0;i<files.length;i++) {

    // destination file will be created or overwritten by default.
    fs.copyFile(files[i], destionation + '/' + files[i].replace(/^.*[\\/]/, ''), (err) => {
    if (err) throw err;
      console.info(files[i] +' was copied to ' + destination);
    });
  }
}

var files = ['/path/to/source/files.txt', '/sources/files/files2.txt'];

var destination = '/file/would/copy/to';

copies(fs, files, destination);

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

joao 14.02.2019 09:59
Ответ принят как подходящий

Вот функция, которая может помочь вам сделать это

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

function copyFiles() {
    const firstFolder = 'firstFolder';
    const secondFolder = 'secondFolder';
    const destinationFolder = 'destinationFolder';
    const firstDir = path.join(__dirname, firstFolder);
    const secondDir = path.join(__dirname, secondFolder);
    const destDir = path.join(__dirname, destinationFolder);
    fs.readdir(firstDir, (err, files) => {
        if (err) {
            throw err;
        }
        for (let i = 0; i < files.length; i += 1) {
            fs.copyFile(firstDir + '/' + files[i], destDir + '/' + files[i], function (err) {
                if (err)
                    throw err;
            });
        }

    });
    fs.readdir(secondDir, (err, files) => {
        if (err) {
            throw err;
        }
        for (let i = 0; i < files.length; i += 1) {
            fs.copyFile(secondDir + '/' + files[i], destDir + '/' + files[i], function (err) {
                if (err)
                    throw err;
            });
        }

    });
}

copyFiles();

Другие вопросы по теме