Я настраиваю программу, которая будет проверять две разные папки и копировать все файлы из третьей. Проблема для меня здесь в том, как скопировать их без их имен?
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");
}
});
с помощью приведенного выше кода я могу перемещать файлы, имена которых я записываю вручную, я хочу как-то реализовать это, чтобы он автоматически сканировал папку и менял их на другие!
@Ахм. спасибо, я здесь новенький, поэтому мне, вероятно, нужно многому научиться, прежде чем задавать вопросы =)



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы должны взглянуть на документы узлов, где это упоминается более подробно
Если я могу предположить, что есть две папки 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');
});
еще раз спасибо, я переформулировал свой вопрос и получил ответы, которые мне были нужны. надеюсь у тебя хороший день!
Самый быстрый способ скопировать файл
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);
спасибо за ваше время, я взял все ответы здесь и нашел решение, которое лучше всего подходит для моего случая
Вот функция, которая может помочь вам сделать это
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();
Привет, Жоао! Предложите дополнительную информацию о структуре папок, типах файлов, коде, который у вас есть, который вы хотите добавить к этой функции, и, пожалуйста, попробуйте проверить правила сообщества, чтобы задать вопрос stackoverflow.com/help/как спросить :)