Node.js fs.unlink-Funktion bewirkt, dass EPERM Fehler
Ich bin mit fs.unlink()
um eine Datei zu löschen und ich bekomme die folgende Fehlermeldung:
uncaught undefined:
Error: EPERM, Operation not permitted '/Path/To/File'
Jemand wissen, warum dies passiert ist?
Überprüfen Sie Ihre Fehlermeldung ?! Versuchen Sie, das gleiche zu tun mit dem Benutzer, der den Vorgang ausführen. (ich.e: /> aufheben der Verknüpfung /Pfad/Zur/Datei )
InformationsquelleAutor Mark Gia Bao Nguyen | 2011-12-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht löschen Sie ein Verzeichnis, das nicht leer ist.
Und fs.unlinkSync() wird verwendet, um eine Datei zu löschen, die nicht einen Ordner.
Entfernen einen leeren Ordner verwenden
fs.rmdir()
löschen eines nicht leeren Ordners, verwenden Sie diesen snippet:
Snippet von stackoverflow: Ist node.js rmdir rekursive ? Wird es auf nicht leere Verzeichnisse?
Dieses snippet sollte NICHT verwendet werden, in jedem code, der verarbeitet client-Anfrage, da es führt synchronen IO und sperren Sie Ihre gesamte Anwendung beim löschen einer potenziell großen Verzeichnisbaum.
Ja, das snippet ist schlecht für große Verzeichnisse in einer client-Anforderung. Aber das ist okay für relativ kleines Verzeichnis-Baum. Können Sie irgendwelche workaround für das löschen einer Verzeichnisstruktur, die aus einer client-Anfrage? Geschätzt wird. Dank
Auch mit kleinen Verzeichnis von Bäumen mahlen kann Ihre Anwendung zu einem halt ziemlich schnell, vor allem, wenn es kann mit hoher Latenz über ein Netzwerk teilen, zum Beispiel. Immer nur die Asynchronen Versionen der IO-Funktionen im request-handling-code. Ich habe gezogen aus einem aktuellen Projekt von mir: gist.github.com/lnwdr/38dd505f49e60bc291af verwendet Es verspricht zu helfen, zu verwalten, alle die gleichzeitigen Operationen und ist völlig non-blocking.
Infortunately ich glaube nicht, dass diese Antwort (irgendwie nützlich), aswer das problem von @Mark Gia Bao Nguyen
InformationsquelleAutor Raghavendra
Wenn Sie etwas erreichen wollen wie rm -rf bedeutet, es ist ein Paket von npm genannt rimraf was es sehr einfach macht.
InformationsquelleAutor David Lin
Vielleicht die Pfad der Datei befindet, ist erroneus.
wenn nicht, versuchen Sie es mit fs.unlinkSync()
InformationsquelleAutor JR Grande
Ja, Sie haben nicht die Berechtigung zum löschen/aufheben der Verknüpfung dieser Datei. Versuchen Sie es erneut mit mehr rechten oder stellen Sie sicher, dass Sie ihm den richtigen Weg.
InformationsquelleAutor thejh