Как удалить файл в Node.js
Короткий ответ
unlink() удаляет файл:
import { unlink, writeFile } from 'node:fs/promises';
import { existsSync } from 'node:fs';
await writeFile('temp.txt', 'data');
await unlink('temp.txt');
console.log(existsSync('temp.txt'));Результат:
falseЕсли файла может не быть
rm() с force: true не выбрасывает ошибку для отсутствующего файла:
import { rm } from 'node:fs/promises';
await rm('maybe-missing.txt', { force: true });
console.log('no error');Результат:
no errorПо расширению
Прочитайте папку и удалите подходящие файлы:
import { mkdir, readdir, unlink, writeFile } from 'node:fs/promises';
import { join } from 'node:path';
await mkdir('cache', { recursive: true });
for (const name of ['a.tmp', 'b.tmp', 'keep.txt']) await writeFile(join('cache', name), '');
for (const name of await readdir('cache')) {
if (name.endsWith('.tmp')) await unlink(join('cache', name));
}
console.log(await readdir('cache'));Результат:
[ 'keep.txt' ]Частая ошибка
unlink() для отсутствующего файла выбрасывает ошибку ENOENT и останавливает скрипт, если её не перехватить:
import { unlink } from 'node:fs/promises';
try {
await unlink('ghost.txt');
} catch (error) {
console.log(error.code);
}Результат:
ENOENTФункции из этого ответа
- String.prototype.endsWith — Проверяет, заканчивается ли строка заданным текстом.