Ich habe ein Node-Skript, das eine Zip in tmp/archive.zip
herunterlädt und das zu tmp/archive
extrahiert. Ich möchte den Inhalt von tmp/archive
in .
verschieben. Ich habe Schwierigkeiten zu finden, wie fs.rename
in einer Art und Weise zu verwenden, die zu mv tmp/archive/* .
entsprichtNode.js Inhalt des Unterverzeichnisses in aktuelles Verzeichnis verschieben
ich fs.rename('tmp/archive/*', '.', function(err){
versucht, aber das gibt mir die folgende Fehlermeldung: Error: ENOENT: no such file or directory, rename 'tmp/archive/*' -> '.'
ich auch versucht haben, glob unter Verwendung der Inhalte zur Liste der tmp/archive
und dann durchlaufen und bewegen sie die Dateien fs-extra Umzug wie folgt verwendet:
glob('tmp/archive/*', {}, function(err, files){
for (var i = files.length - 1; i >= 0; i--) {
fs.move(files[i], '.', function(err){});
}
}.bind(this));
die im folowing Fehler führt: Error: EEXIST: file already exists, link 'tmp/archive/subdirectory' -> '.'
Ich könnte einfach mv tmp/archive/* .
aus dem Skript aufrufen, aber ich möchte das möglichst vermeiden. Gibt es etwas Offensichtliches, das mir fehlt? Wie kann ich das tun?
Ist die Source-Unterverzeichnis enthalten Unterverzeichnisse selbst oder nur Dateien? – jfriend00
Das Unterverzeichnis, das ich verschieben möchte, enthält sowohl Ordner (die auch Ordner usw. enthalten) als auch Dateien. – rabble
OK, meine Antwort unten unterstützt verschachtelte Unterverzeichnisse. Es wird sich dann auch bewegen. Ich habe es selbst getestet. – jfriend00