Копирование, удаление и очистка файлов в NodeJS

В этой статье будут рассмотрены несколько функций: для удаления, копирования и очистки файлов в NodeJS. Все функции являются частью модуля "fs" для работы с файловой системой.

Копирование файлов

Для копирования используется метод "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('Файл успешно очищен');
});
- такой код удалит все данные из файла за исключением первых трёх символов.
MouseDC.ru - хостинг, виртуальный хостинг, покупка доменов, проверка доменов, WHOIS, курсы создания сайтов, вебинары по созданию, курсы разработки сайтов, доработка сайтов, сопровождение сайтов, разработка сайтов, техподдержка сайтов
Cмотрите другие статьи:
Была ли статья полезной?
Была ли эта статья полезна? Есть вопрос?
хостинг для сайтов
Закажите недорогой хостинг Заказать

всего от 290 руб