zoukankan      html  css  js  c++  java
  • 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 );
    

      

  • 相关阅读:
    javascript的组成
    BOM
    相等操作符
    arguments
    数组
    Tomcat日志时间的时区问题
    利用脚本批量操作Solr集群(SolrCloud)
    Solr的schema.xml(managedschema)文件
    Solr报警告The _default configset could not be uploaded
    Ubuntu创建用户
  • 原文地址:https://www.cnblogs.com/coding4/p/7495968.html
Copyright © 2011-2022 走看看