Uczymy się kopiować pliki za pomocą node.js oraz znanych nam modułów path i filesystem. Do dzieła.
Standardowo zaczynamy od kodu:
const fs = require("fs");
const path = require("path");
function file(filename) {
return path.join(__dirname, "files", filename);
}
Plik lorem.txt istnieje, plik lorem_copy.txt ma istnieć po wykonaniu skryptu:
const fs = require("fs");
const path = require("path");
function file(filename) {
return path.join(__dirname, "files", filename);
}
var loremPath = file('lorem.txt');
var loremCopyPath = file('lorem_copy.txt');
Teraz możemy kopiować:
const fs = require("fs");
const path = require("path");
function file(filename) {
return path.join(__dirname, "files", filename);
}
var loremPath = file('lorem.txt');
var loremCopyPath = file('lorem_copy.txt');
fs.copyFile(loremPath, loremCopyPath, function(err){
if(err){
console.log(`Error occured: ${err.message}`);
return;
}
console.log('File copied!');
});
Ok, staramy się napisać funkcję do tego:
var loremPath = file('lorem.txt');
function copyFile(fPath){
var basename = path.basename(fPath);
console.log(basename);
}
copyFile(loremPath);
//lorem.txt
Kombinujemy dalej:
var loremPath = file('lorem.txt');
function copyFile(fPath){
var basename = path.basename(fPath, ".txt");
console.log(basename);
}
copyFile(loremPath);
//lorem
Dalej kombinujemy aż do skutku:
var loremPath = file('lorem.txt');
function copyFile(fPath){
var extension = path.extname(fPath);
var basename = path.basename(fPath, extension);
var copyBasename = basename + "_copy" + extension;
console.log(path.basename(fPath));
console.log(copyBasename);
}
copyFile(loremPath);
// lorem.txt
// lorem_copy.txt
Jakby jeszcze coś nie było jasne:
var loremPath = file('lorem.txt');
function copyFile(fPath){
var extension = path.extname(fPath);
var basename = path.basename(fPath, extension);
var copyBasename = basename + "_copy" + extension;
console.log(path.basename(fPath));
console.log(copyBasename);
console.log(fPath, file(copyBasename));
}
copyFile(loremPath);
// lorem.txt
// lorem_copy.txt
// C:\Users\node1\files\lorem.txt C:\Users\\node1\files\lorem_copy.txt
Teraz możemy już poskładać to do kupy i kopiować:
const fs = require("fs");
const path = require("path");
function file(filename) {
return path.join(__dirname, "files", filename);
}
var loremPath = file('lorem.txt');
function copyFile(fPath){
var extension = path.extname(fPath);
var basename = path.basename(fPath, extension);
var copyBasename = basename + "_copy" + extension;
fs.copyFile(fPath, file(copyBasename), function(err){
if(err){
console.log(`Error occured: ${err.message}`);
return;
}
console.log('File copied!');
});
}
copyFile(loremPath);
Warto znać moduł path – nie jest duży, ale bardzo użyteczny. Tym bardziej warto.