ファイル「/tmp/sample.txt 」があり、それを別のボリュームにある「 /var/www/mysite/sample.txt 」に移動するとします。
node.jsでファイルを移動するにはどうすればよいですか?
fs.renameは同じボリューム内でのみ機能し、util.pumpはすでに非推奨になっていることを読みました。
それを行うための適切な方法は何ですか?stream.pipeについて読みましたが、動作させることができませんでした。簡単なサンプルコードが非常に役立ちます。
ファイル「/tmp/sample.txt 」があり、それを別のボリュームにある「 /var/www/mysite/sample.txt 」に移動するとします。
node.jsでファイルを移動するにはどうすればよいですか?
fs.renameは同じボリューム内でのみ機能し、util.pumpはすでに非推奨になっていることを読みました。
それを行うための適切な方法は何ですか?stream.pipeについて読みましたが、動作させることができませんでした。簡単なサンプルコードが非常に役立ちます。
mvモジュールを使用します。
var mv = require('mv');
mv('source', 'dest', function(err) {
// handle the error
});
Windowsで、「mv」モジュールがない場合、次のようにできますか
var fs = require("fs"),
source = fs.createReadStream("c:/sample.txt"),
destination = fs.createWriteStream("d:/sample.txt");
source.pipe(destination, { end: false });
source.on("end", function(){
fs.unlinkSync("C:/move.txt");
});
jbowesが述べたように、mvモジュールはおそらく正しい方法ですが、子プロセスAPIを使用して、代わりに組み込みのOSツールを使用することもできます。Linuxを使用している場合は、「mv」コマンドを使用してください。Windowsを使用している場合は、「move」コマンドを使用します。
var exec = require('child_process').exec;
exec('mv /temp/sample.txt /var/www/mysite/sample.txt',
function(err, stdout, stderr) {
// stdout is a string containing the output of the command.
});
execが正しく機能しない場合は、spawnを使用することもできます。
var spawn = require("child_process").spawn;
var child = spawn("mv", ["data.csv","./done/"]);
child.stdout.on("end", function () {
return next(null,"finished")
});
これがお役に立てば幸いです。