2013-11-28 20 views
10

Voglio eliminare 3 file in list_file_to_delete ma non so qual è il percorso da inserire in "percorso di tre file qui" ?. Ho bisogno della funzione loop/for in/forEach per cancellare tutto o solo di una stringa con 3 percorsi probabilmente var string = "...a1.jpg, ...a2.jpg,...a3.jpg"? Grazie in anticipopercorso file ed elimina file in nodejs

in delete.js file di

var list_file_to_delete = ["/images/a1.jpg", "/images/a2.jpg", "/images/a3.jpg"] 
fs.unlink(path to three files here, function(err) {console.log("success")}) 

questo è myapp directory

myapp 
     /app 
      /js 
      delete.js 
     /public 
      /images 
        a1.jpg 
        a2.jpg 
        a3.jpg 
     server.js 
+0

i backtick non sono citazioni. Usali solo per il codice surround. –

risposta

15

fs.unlink prende un singolo file, in modo scollegali ogni elemento:

list_of_files.forEach(function(filename) { 
    fs.unlink(filename); 
}); 

o, se si bisogno di dele sequenziali, ma asincroni tes puoi usare il seguente codice ES5:

(function next(err, list) { 
    if (err) { 
    return console.error("error in next()", err); 
    } 
    if (list.length === 0) { 
    return; 
    } 
    var filename = list.splice(0,1)[0]; 
    fs.unlink(filename, function(err, result) { 
    next(err, list); 
    }); 
}(null, list_of_files.slice())); 
+0

grazie, e come va il percorso dei file, io uso /../public/images/a1.jpg non funziona – user3044147

+0

il percorso è relativo alla directory in cui hai usato 'node yourscript.js', quindi se lo chiami nel directory 'myapp', si scollegheranno i file come" ./public/images/a1.jpg "ecc. –

+0

Funziona ora, grazie mille. Ma non capisco perché, perché penso che usiamo il percorso relativo nel caso di directory pubbliche all'interno della directory js – user3044147