2014-11-22 16 views
14

Come rimuovere tutti i file da una directory senza rimuovere una directory stessa utilizzando Node.js?
Voglio rimuovere i file temporanei. Non sono ancora a posto con i filesystem.Come rimuovere tutti i file dalla directory senza rimuovere la directory in Node.js

Ho trovato il metodo this, che rimuoverà i file e la directory. In questo, qualcosa come /path/to/directory/* non funzionerà.

Non so davvero quali comandi utilizzare. Grazie per l'aiuto.

+2

Se si desidera utilizzare i caratteri jolly, controlla https://www.npmjs.org/package/glob. –

+1

basta guardare l'api, cosa c'è di così difficile in esso? devi ottenere i file in una directory e quindi eliminarli. – Sikorski

+1

Glob ha concluso il lavoro, grazie! – youbetternot

risposta

26

Per rimuovere tutti i file da una directory, è necessario innanzitutto elencare tutti i file nella directory utilizzando fs.readdir, quindi è possibile utilizzare fs.unlink per rimuovere ciascun file. Anche fs.readdir darà solo i nomi dei file, è necessario concatenare con il nome della directory per ottenere il percorso completo.

Ecco un esempio

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

const directory = 'test'; 

fs.readdir(directory, (err, files) => { 
    if (err) throw err; 

    for (const file of files) { 
    fs.unlink(path.join(directory, file), err => { 
     if (err) throw err; 
    }); 
    } 
}); 
+1

funziona molto bene, e la maggior parte avrà già fs e path necessari, quindi questo è un bonus, non sono necessari pacchetti extra. ho appena scambiato 'test' per path.join (__ dirname, '../../public/uploads') – russiansummer

0

C'è pacchetto chiamato rimraf che è molto utile. È il comando UNIX rm -rf per nodo.

Tuttavia, può essere troppo potente perché è possibile eliminare le cartelle molto facilmente usandolo. I seguenti comandi cancelleranno i file all'interno della cartella. Se si rimuove il *, si rimuoverà la cartella del registro.

const rimraf = require('rimraf'); 
rimraf('./log/*', function() { console.log('done'); }); 

https://www.npmjs.com/package/rimraf

Problemi correlati