Sie wollen die fs.readdir Funktion verwenden, um die Verzeichnisinhalte und die fs.rename Funktion zu erhalten, um tatsächlich die Umbenennung zu tun. Beide Funktionen haben synchrone Versionen, wenn Sie benötigen, um darauf zu warten, dass sie beendet werden, bevor Sie den Code danach ausführen.
Ich schrieb ein schnelles Skript, das das tut, was Sie beschrieben haben.
var fs = require('fs');
var path = require('path');
// In newer Node.js versions where process is already global this isn't necessary.
var process = require("process");
var moveFrom = "/home/mike/dev/node/sonar/moveme";
var moveTo = "/home/mike/dev/node/sonar/tome"
// Loop through all the files in the temp directory
fs.readdir(moveFrom, function(err, files) {
if(err) {
console.error("Could not list the directory.", err);
process.exit(1);
}
files.forEach(function(file, index) {
// Make one pass and make the file complete
var fromPath = path.join(moveFrom, file);
var toPath = path.join(moveTo, file);
fs.stat(fromPath, function(error, stat) {
if(error) {
console.error("Error stating file.", error);
return;
}
if(stat.isFile())
console.log("'%s' is a file.", fromPath);
else if(stat.isDirectory())
console.log("'%s' is a directory.", fromPath);
fs.rename(fromPath, toPath, function(error) {
if(error) {
console.error("File moving error.", error);
}
else {
console.log("Moved file '%s' to '%s'.", fromPath, toPath);
}
});
});
});
});
Getestet auf meinem lokalen Rechner.
node testme.js
'/home/mike/dev/node/sonar/moveme/hello' is a file.
'/home/mike/dev/node/sonar/moveme/test' is a directory.
'/home/mike/dev/node/sonar/moveme/test2' is a directory.
'/home/mike/dev/node/sonar/moveme/test23' is a directory.
'/home/mike/dev/node/sonar/moveme/test234' is a directory.
Moved file '/home/mike/dev/node/sonar/moveme/hello' to '/home/mike/dev/node/sonar/tome/hello'.
Moved file '/home/mike/dev/node/sonar/moveme/test' to '/home/mike/dev/node/sonar/tome/test'.
Moved file '/home/mike/dev/node/sonar/moveme/test2' to '/home/mike/dev/node/sonar/tome/test2'.
Moved file '/home/mike/dev/node/sonar/moveme/test23' to '/home/mike/dev/node/sonar/tome/test23'.
Moved file '/home/mike/dev/node/sonar/moveme/test234' to '/home/mike/dev/node/sonar/tome/test234'.
Vielleicht sollten Sie sich die Dateisystem-API node.js anschauen. Es * könnte * eine Funktion sein, um die Dateien in einem Verzeichnis aufzulisten. Bitte, zeigen Sie etwas Mühe, bevor Sie hier nachfragen. 'stat'ing ein Verzeichnis hat wenig mit Ihrem Problem zu tun. –
Danke aber ja ich weiß. Ich schaute auf die API und hatte Probleme, deshalb bin ich hier – Prolasis