Eliminar directorio que no esté vacío

Resuelto sachin asked hace 11 años • 35 respuestas

En mi aplicación Node necesito eliminar un directorio que tiene algunos archivos, pero que fs.rmdirsolo funciona en directorios vacíos. ¿Cómo puedo hacer esto?

sachin avatar Aug 05 '13 14:08 sachin
Aceptado

A partir de Node.js 14.14.0, la forma recomendada es utilizar fs.rmSync:

fs.rmSync(dir, { recursive: true, force: true });
 avatar Sep 10 '2019 07:09

Hay un módulo para esto llamado rimraf( https://npmjs.org/package/rimraf ). Proporciona la misma funcionalidad querm -Rf

Uso asíncrono :

var rimraf = require("rimraf");
rimraf("/some/directory", function () { console.log("done"); });

Uso de sincronización :

rimraf.sync("/some/directory");
Morgan ARR Allen avatar Aug 05 '2013 07:08 Morgan ARR Allen

Para eliminar la carpeta sincrónicamente

    const fs = require('fs');
    const Path = require('path');

    const deleteFolderRecursive = function (directoryPath) {
    if (fs.existsSync(directoryPath)) {
        fs.readdirSync(directoryPath).forEach((file, index) => {
          const curPath = path.join(directoryPath, file);
          if (fs.lstatSync(curPath).isDirectory()) {
           // recurse
            deleteFolderRecursive(curPath);
          } else {
            // delete file
            fs.unlinkSync(curPath);
          }
        });
        fs.rmdirSync(directoryPath);
      }
    };
SharpCoder avatar Aug 25 '2015 06:08 SharpCoder