ich nicht in der Lage bin einen Strom in node.js zu schließen ist mein CodeSchließen Strom node.js
var inp = fs.createReadStream("a/b/c/"+ Name);
var out = fs.createWriteStream("a/b/c/"+ Name);
inp.pipe(out);
inp.close(function(err){
if (err){
console.log(err);
} else {
inp.unpipe(out);
socket.emit('Done',{'Name':name});
console.log('There will be no more data.');
}
});
Dann habe ich diese Funktion weiter unten in meinem Code, der das Verzeichnis das Verzeichnis von inp löscht
var fse = require("fs-extra");
fse.emptyDir("a/b/c/", function(err){
if(err){
console.log(err);
} else {
console.log("doneaaaa")
fse.remove("a/b/c",function(err){
if(err){
console.log(err);
} else {
console.log('doneaswell');
}
});
}
});
und ich bekomme diesen Fehler !!
doneaaaa
{ [Error: EBUSY: resource busy or locked, unlink 'a/b/c/.nfs000000002ab5000d00000072']
errno: -16,
code: 'EBUSY',
syscall: 'unlink',
path: 'a/b/c/.nfs000000002ab5000d00000072' }
Das bedeutet, der Stream ist noch offen!
.nfs-Datei wird beim Streaming erstellt richtig, aber sollte Datei nicht löschen, sobald der Stream geschlossen ist?
Was mache ich falsch?
Ich sehe nicht, dass Sie anrufen 'unlink' //' unlinkSync' https://nodejs.org/api/fs.html#fs_fs_unlink_path_callback Was ist 'fse'? – Pogrindis
@Pogrindis Sorry, dass die Frage bearbeitet var fse = require ('fs-extra'); Ich habe versucht, unlink auch aus dem Standard-fs-Modul beendet die mit den gleichen Problemen –