Node.js fs.rm () Метод
Опубликовано: 26 Июля, 2021
Метод fs.rm () используется для удаления файла по заданному пути. Его также можно использовать рекурсивно для удаления каталогов.
Синтаксис:
fs.rm (путь, параметры, обратный вызов);
Параметры: этот метод принимает три параметра, как указано выше и описано ниже:
- path: содержит путь к файлу, который необходимо удалить. Это может быть строка, буфер или URL.
- options: это объект, который можно использовать для указания дополнительных параметров, которые будут влиять на операцию следующим образом:
- force: это логическое значение. Если путь не существует, исключения будут игнорироваться.
- рекурсивный: это логическое значение, указывающее, выполняется ли рекурсивное удаление каталога. В этом режиме об ошибках не сообщается, если указанный путь не найден, и операция повторяется в случае сбоя. Значение по умолчанию неверно.
- обратный вызов: это функция, которая будет вызываться при выполнении метода.
- err: это ошибка, которая будет выдана, если операция завершится неудачно.
Примеры ниже иллюстрируют метод fs.rm () в Node.js:
Пример 1. В этом примере для удаления файла используется метод fs.rm ().
Имя файла: index.js
Javascript
// Import necessary modules let fs = require( 'fs' ); // List files before deleting getCurrentFilenames(); fs.rm( './dummy.txt' , { recursive: true }, (err) => { if (err){ // File deletion failed console.error(err.message); return ; } console.log( "File deleted successfully" ); // List files after deleting getCurrentFilenames(); }) // This will list all files in current directory function getCurrentFilenames() { console.log( "
Current filenames:" ); fs.readdirSync(__dirname).forEach(file => { console.log(file); }); console.log( "" ); } |
Запустите файл index.js, используя следующую команду:
узел index.js
Выход:
Текущие имена файлов: dummy.txt index.js node_modules пакет-lock.json package.json Файл успешно удален Текущие имена файлов: index.js node_modules пакет-lock.json package.json
Пример 2: В этом примере для удаления каталогов используется метод fs.rm () с рекурсивным параметром.
Имя файла: index.js
Javascript
// Import the filesystem module const fs = require( 'fs' ); // List the files in current directory getCurrentFilenames(); // Trying to delete directory without the recursive parameter fs.rm( "./build" , { recursive: false }, (err) => { if (err) { console.error(err); } else { console.log( "Non Recursive: Directory Deleted!" ); } }); // Using the recursive option to delete directory fs.rm( "./build" , { recursive: true }, (err) => { if (err) { console.error(err); } else { console.log( "Recursive: Directory Deleted!" ); // List files after delete getCurrentFilenames(); } }); // List all files in current directory function getCurrentFilenames() { console.log( "
Current filenames:" ); fs.readdirSync(__dirname).forEach(file => { console.log(file); }); console.log( "
" ); } |
Запустите файл index.js, используя следующую команду:
узел index.js
Выход:
Текущие имена файлов: строить index.js node_modules пакет-lock.json package.json SystemError [ERR_FS_EISDIR]: Путь - это каталог: rm вернул EISDIR (это каталог) ./build на внутреннем / fs / utils.js: 688: 23 в FSReqCallback.oncomplete (fs.js: 184: 5) { код: 'ERR_FS_EISDIR', Информация: { код: 'EISDIR', сообщение: 'это каталог', путь: './build', системный вызов: 'rm', номер ошибки: 21 }, errno: [Getter / Setter: 21], системный вызов: [Getter / Setter: 'rm'], путь: [Getter / Setter: './build'] } Рекурсивно: каталог удален! Текущие имена файлов: index.js node_modules пакет-lock.json package.json
Ссылка: https://nodejs.org/api/fs.html#fs_fs_rm_path_options_callback