あなたは、ディレクトリの内容とfs.rename機能は、実際に名前変更を行うために取得するためにfs.readdir機能を使用します。 がを必要とする場合、これらの関数は同期バージョンを持っています。後でコードを実行する前にそれらが終了するのを待つ必要があります。
私はあなたが説明したことを行うクイックスクリプトを書いた。
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);
}
});
});
});
});
ローカルマシンでテスト済みです。
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'.
おそらく、node.jsファイルシステムAPIを参照する必要があります。ディレクトリ内のファイルを一覧表示する機能があるかもしれません。ここに尋ねる前に、何か努力をしてください。ディレクトリの 'stat'はあなたの問題とはほとんど関係がありません。 –
ありがとうございます。はい、私は知っています。私はAPIを見て、それが私がここにいるのを悩ましていた – Prolasis