nodejs实现文件的拷贝复制

Posted 飘然离去

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nodejs实现文件的拷贝复制相关的知识,希望对你有一定的参考价值。

var fs = require( ‘fs‘ ),
    stat = fs.stat;
/*
05
 * 复制目录中的所有文件包括子目录
06
 * @param{ String } 需要复制的目录
07
 * @param{ String } 复制到指定的目录
08
 */
var copy = function( src, dst ){
    // 读取目录中的所有文件/目录
    fs.readdir( src, function( err, paths ){
        if( err ){
            throw err;
        }
 
        paths.forEach(function( path ){
            var _src = src + ‘/‘ + path,
                _dst = dst + ‘/‘ + path,
                readable, writable;       
 
            stat( _src, function( err, st ){
                if( err ){
                    throw err;
                }
 
                // 判断是否为文件
                if( st.isFile() ){
                    // 创建读取流
                    readable = fs.createReadStream( _src );
                    // 创建写入流
                    writable = fs.createWriteStream( _dst );  
                    // 通过管道来传输流
                    readable.pipe( writable );
                }
                // 如果是目录则递归调用自身
                else if( st.isDirectory() ){
                    exists( _src, _dst, copy );
                }
            });
        });
    });
};
// 在复制目录前需要判断该目录是否存在,不存在需要先创建目录
var exists = function( src, dst, callback ){
    fs.exists( dst, function( exists ){
        // 已存在
        if( exists ){
            callback( src, dst );
        }
        // 不存在
        else{
            fs.mkdir( dst, function(){
                callback( src, dst );
            });
        }
    });
};

// 复制目录

exists( ‘./login‘, ‘./haha‘, copy );

  

以上是关于nodejs实现文件的拷贝复制的主要内容,如果未能解决你的问题,请参考以下文章

拷贝图片

Android 逆向使用 DB Browser 查看并修改 SQLite 数据库 ( 从 Android 应用数据目录中拷贝数据库文件 | 使用 DB Browser 工具查看数据块文件 )(代码片段

Android 逆向使用 DB Browser 查看并修改 SQLite 数据库 ( 从 Android 应用数据目录中拷贝数据库文件 | 使用 DB Browser 工具查看数据块文件 )(代码片段

IO实战-RandomAccessFile在本地实现伪断点续传

Java代码拷贝文件夹 注:复制文件夹

练习文件拷贝——利用文件流实现文件的复制