Wie lösche ich eine Datei mit node.js?
http://nodejs.org/api/fs.html#fs_fs_rename_oldpath_newpath_callback
Ich sehe keinen Befehl zum Entfernen?
Wie lösche ich eine Datei mit node.js?
http://nodejs.org/api/fs.html#fs_fs_rename_oldpath_newpath_callback
Ich sehe keinen Befehl zum Entfernen?
Antworten:
rmFileAlias
rmAlias, wenn sie rmdirMethoden haben
fs.unlinkSync()
Sie können die fs.unlink(path, callback)asynchrone Verknüpfung (2) oder die fs.unlinkSync(path)synchrone Verknüpfung (2) aufrufen .
Wo pathist der Dateipfad, den Sie entfernen möchten?
Zum Beispiel möchten wir die discovery.docxDatei aus dem c:/bookVerzeichnis entfernen . Mein Dateipfad ist also c:/book/discovery.docx. Der Code zum Entfernen dieser Datei lautet also:
var fs = require('fs');
var filePath = 'c:/book/discovery.docx';
fs.unlinkSync(filePath);
Wenn Sie die Datei vor dem Löschen überprüfen möchten, ob sie vorhanden ist oder nicht. Verwenden Sie also fs.stat oder fs.statSync ( Synchronous ) anstelle von fs.exists. Da nach dem neuesten Stand node.js Dokumentation , fs.existsjetzt veraltet .
Zum Beispiel:-
fs.stat('./server/upload/my.csv', function (err, stats) {
console.log(stats);//here we got all information of file in stats variable
if (err) {
return console.error(err);
}
fs.unlink('./server/upload/my.csv',function(err){
if(err) return console.log(err);
console.log('file deleted successfully');
});
});
fs.unlink. Wenn die Datei nicht vorhanden ist, ENOENTwird im Rückruf ein Fehler angezeigt. Sie müssen dies nicht überprüfen, bevor Sie versuchen, die Verknüpfung aufzuheben.
fs.unlink, wenn die Datei nicht vorhanden ist ?
unlinkRückruf. Wenn dieser Fehler aufgetreten ist, war die Datei nicht vorhanden. Schauen Sie sich zum Beispiel Searenes Antwort an.
Ich glaube nicht, dass Sie überprüfen müssen, ob eine Datei vorhanden ist oder nicht, fs.unlinkwird sie für Sie überprüfen.
fs.unlink('fileToBeRemoved', function(err) {
if(err && err.code == 'ENOENT') {
// file doens't exist
console.info("File doesn't exist, won't remove it.");
} else if (err) {
// other errors, e.g. maybe we don't have enough permission
console.error("Error occurred while trying to remove file");
} else {
console.info(`removed`);
}
});
Hier ist ein kleiner Ausschnitt von mir, den ich zu diesem Zweck gemacht habe:
var fs = require('fs');
var gutil = require('gulp-util');
fs.exists('./www/index.html', function(exists) {
if(exists) {
//Show in green
console.log(gutil.colors.green('File exists. Deleting now ...'));
fs.unlink('./www/index.html');
} else {
//Show in red
console.log(gutil.colors.red('File not found, so not deleting.'));
}
});
fs.existsund vor dem Entfernen mit überprüft haben fs.unlink? Es könnte passieren.
unlinkund behandeln Sie den ENOENTFehler , falls er nicht vorhanden ist . Andernfalls können Sie eine Rennbedingung erstellen.
Verwenden Sie als akzeptierte Antwort, fs.unlinkum Dateien zu löschen.
Aber laut Node.js Dokumentation
Verwenden Sie
fs.stat()diese Option, um vor dem Aufrufen zu prüfen, ob eine Datei vorhanden istfs.open(),fs.readFile()oder diesfs.writeFile()wird nicht empfohlen. Stattdessen sollte der Benutzercode die Datei direkt öffnen / lesen / schreiben und den Fehler behandeln, der ausgelöst wird, wenn die Datei nicht verfügbar ist.Es
fs.access()wird empfohlen, zu überprüfen, ob eine Datei vorhanden ist, ohne sie anschließend zu bearbeiten.
Um zu überprüfen, ob Dateien gelöscht werden können oder nicht, verwenden Sie fs.accessstattdessen
fs.access('/etc/passwd', fs.constants.R_OK | fs.constants.W_OK, (err) => {
console.log(err ? 'no access!' : 'can read/write');
});
unlinkdirekt, weil sie wissen, dass sie Rechte zum Löschen der Datei haben. Dies fs.accessist jedoch eine gute Alternative, wenn sie vor dem Löschen überprüft werden müssen. Aber ich denke, wenn sie überprüfen müssen, ob eine Datei existiert, ohne sie danach zu manipulieren, sollten sie natürlich verwenden fs.stat, fs.accesshat meiner bescheidenen Meinung nach einen anderen Zweck.
Hier unten mein Code, der gut funktioniert.
const fs = require('fs');
fs.unlink(__dirname+ '/test.txt', function (err) {
if (err) {
console.error(err);
}
console.log('File has been Deleted');
});
2019 und Node 10+ ist da . Unterhalb der Version mit süßem Async / Warten Weg.
Jetzt müssen Sie sich nicht mehr fs.unlinkin Promises einwickeln oder zusätzliche Pakete (wie fs-extra) verwenden.
Verwenden Sie einfach die native fs Promises API .
const fs = require('fs').promises;
(async () => {
try {
await fs.unlink('~/any/file');
} catch (e) {
// file doesn't exist, no permissions, etc..
// full list of possible errors is here
// http://man7.org/linux/man-pages/man2/unlink.2.html#ERRORS
console.log(e);
}
})();
Hier ist eine fsPromises.unlink Spezifikation aus Node-Dokumenten.
Beachten Sie auch, dass die fs.promises-API in Node 10.xx als experimentell markiert ist (funktioniert aber völlig in Ordnung) und seitdem nicht mehr experimentell ist 11.14.0.
Mit dem del- Modul können Sie eine oder mehrere Dateien im aktuellen Verzeichnis entfernen. Das Schöne daran ist, dass Sie vor dem Löschen des aktuellen Arbeitsverzeichnisses und höher geschützt sind.
const del = require('del');
del(['<your pathere here>/*']).then( (paths: any) => {
console.log('Deleted files and folders:\n', paths.join('\n'));
});
Sie können die Funktion fs.unlink (Pfad, Rückruf) verwenden. Hier ist ein Beispiel für den Funktions-Wrapper mit "Fehler-Zurück" -Muster:
// Dependencies.
const fs = require('fs');
// Delete a file.
const deleteFile = (filePath, callback) => {
// Unlink the file.
fs.unlink(filePath, (error) => {
if (!error) {
callback(false);
} else {
callback('Error deleting the file');
}
})
};
Entfernen Sie Dateien aus dem Verzeichnis, das mit regulärem Ausdruck für Dateinamen übereinstimmt. Wird nur fs.unlink verwendet, um Dateien zu entfernen, fs.readdir, um alle Dateien aus einem Verzeichnis abzurufen
var fs = require('fs');
const path = '/path_to_files/filename.anyextension';
const removeFile = (fileName) => {
fs.unlink(`${path}${fileName}`, function(error) {
if (error) {
throw error;
}
console.log('Deleted filename', fileName);
})
}
const reg = /^[a-zA-Z]+_[0-9]+(\s[2-4])+\./
fs.readdir(path, function(err, items) {
for (var i=0; i<items.length; i++) {
console.log(items[i], ' ', reg.test(items[i]))
if (reg.test(items[i])) {
console.log(items[i])
removeFile(items[i])
}
}
});
fs-extra bietet eine Methode zum Entfernen:
const fs = require('fs-extra')
fs.remove('/tmp/myfile')
.then(() => {
console.log('success!')
})
.catch(err => {
console.error(err)
})
https://github.com/jprichardson/node-fs-extra/blob/master/docs/remove.md
Verwenden Sie das NPM-Modul fs-extra , mit dem Sie alles in fs erhalten und alles versprochen ist. Als Bonus steht eine fs.remove () -Methode zur Verfügung.
Hier der Code, mit dem Sie Datei / Bild aus Ordner löschen können.
var fs = require('fs');
Gallery.findById({ _id: req.params.id},function(err,data){
if (err) throw err;
fs.unlink('public/gallery/'+data.image_name);
});
deleteAlias hinzufügen !