ホームページ >ウェブフロントエンド >jsチュートリアル >Node.js_node.jsでのファイルコピーの方法と例

Node.js_node.jsでのファイルコピーの方法と例

WBOY
WBOYオリジナル
2016-05-16 16:46:151309ブラウズ

Node.js 自体は、ファイルを直接コピーするための API を提供していません。Node.js を使用してファイルまたはディレクトリをコピーしたい場合は、他の API を使用する必要があります。単一のファイルをコピーするには、readFile と writeFile を直接使用する方が簡単です。ディレクトリ内のすべてのファイルをコピーする場合、そのディレクトリにはサブディレクトリも含まれる可能性があるため、より高度な API を使用する必要があります。

ストリーム

ストリームは、Node.js がデータを移動する方法です。Node.js のストリームは、HTTP モジュールとファイル システム モジュールの両方でストリームを使用します。ファイル システムでは、ストリームを使用してファイルを読み取る場合、大きなファイルは一度に読み取られることはありませんが、読み取り時にデータ イベントが応答され、読み取ったデータを操作できます。同様に、ストリームに書き込むときも、読み取り時と同様に、大きなファイルが一度に書き込まれることはありません。このデータの移動方法は、特に大きなファイルの場合、非常に効率的です。ストリームを使用すると、大きなファイル全体が読み取られるのを待ってからファイルを操作するよりもはるかに速くなります。

パイプライン

ストリームの読み取りおよび書き込み時に完全な制御が必要な場合は、データ イベントを使用できます。ただし、純粋なファイルのコピーの場合、読み取りストリームと書き込みストリームはパイプを介してデータを送信できます。

実際の応用:

コードをコピー コードは次のとおりです:

var fs = require( 'fs' ),
stat = fs.stat;

/*
* サブディレクトリを含むディレクトリ内のすべてのファイルをコピーします
* @ param{ String } コピー先のディレクトリ
* @param{ String } 指定したディレクトリにコピー
*/
var copy = function( src, dst ){
// ディレクトリを読み込み すべてのファイル/directories of
fs.readdir( src, function( err, paths ){
if( err ){
throw err;
}

paths.forEach(function( path ){
var _src = src '/' path,
_dst = dst '/' path,
読み取り可能、書き込み可能;

stat( _src, function( err, st ){
if( err ){
throw err;
}

stream(_src);
stream
}
frong absed🎜>});
}
// ディレクトリをコピーする前に、ディレクトリが存在するかどうかを確認する必要があります。存在しない場合は、最初にディレクトリを作成する必要があります。
var contains = function( src, dst, callback ){
fs.exists( dst, function(存在する ) {
fs.mkdir( dst , function(){
callback( src, dst );
//ディレクトリをコピーします
存在します( './src', './build', copy );



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。