Копирование файлов
Для копирования используется метод "fs.copyFile". В его первый аргумент передаётся название файла (относительный или абсолютный путь к нему), который необходимо скопировать, а во втором пишется новый путь. К примеру:let fs = require('fs');
fs.copyFile('old_file.txt', 'new_file.txt', err => {
if(err) throw err; // не удалось скопировать файл
console.log('Файл успешно скопирован');
});
Метод "copyFile" работает асинхронно. И если файл, путь к которому указан во втором параметре, уже существует, то он будет перезаписан без предупреждения.Как часто это бывает в NodeJS, в третий аргумент, в callback функцию, передаётся только одна переменная, куда будет записана ошибка в случае неудачного копирования.
Для этой функции есть особый флаг, который передаётся третьим параметром. Это флаг COPYFILE_EXCL. Он не даёт перезаписывать файл назначения, если такой уже существует. Для его использования необходимо передать его третьим параметром, до callback функции:
let fs = require('fs');
let { COPYFILE_EXCL } = fs.constants;
fs.copyFile('old_file.txt', 'new_file.txt', COPYFILE_EXCL, err => {
if(err) throw err; // не удалось скопировать файл. Он уже существует?
console.log('Файл успешно скопирован');
});
Удаление файлов
Для удаления файлов используется метод "fs.unlink". В его первый аргумент передаётся относительный или абсолютный путь к файлу, который нужно удалить. Во втором параметре ставится callback функция для вывода возможной ошибки:let fs = require('fs');
fs.unlink('folder/file_delete.txt', err => {
if(err) throw err; // не удалось удалить файл
console.log('Файл успешно удалён');
});
Очистка файлов
Для очистки содержимого файлов используется метод "fs.truncate". Этот метод может асинхронный, но в паре к нему есть метод "fs.truncateSync", который работает синхронно. Оба метода принимают одни и те же аргументы. В первый аргумент передаётся относительный или абсолютный путь к файлу, содержимое которого нужно очистить. Во втором параметре ставится callback функция для вывода возможной ошибки:let fs = require('fs');
fs.truncateSync('folder/file_delete.txt', err => {
if(err) throw err; // не удалось очистить файл
console.log('Файл успешно очищен');
});
fs.truncate('folder/file_delete.txt', err => {
if(err) throw err; // не удалось очистить файл
console.log('Файл успешно очищен');
});
Если в этот метод передать вторым параметром целое число (больше нуля), то будет очищен файл только начиная с определённого символа и до конца файла:
let fs = require('fs');
fs.truncateSync('folder/file_delete.txt', 3, err => {
if(err) throw err; // не удалось очистить файл
console.log('Файл успешно очищен');
});
- такой код удалит все данные из файла за исключением первых трёх символов.