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 );

  

时间: 2024-08-06 11:06:38

nodejs实现文件的拷贝复制的相关文章

电脑的文件怎么拷贝复制到VMware虚拟机

我们有时候想要在电脑和虚拟机之间复制粘贴文件,当然最笨的方法是用U盘进行复制转移,但是这样也太落伍了吧,那么我们怎么利用虚拟机自带的功能,然后将电脑的文件复制拷贝到VMware虚拟机中呢?有些朋友不太熟悉操作方法,其实这里面我们主要是要安装虚拟机的VMware Tools工具,我们安装这个工具以后,不仅仅可以将电脑文件拷贝到虚拟机,当然也可以将虚拟机的文件转移到电脑,这里小编介绍下操作方法. 工具/原料 电脑和VMware虚拟机文件复制互传 电脑的文件怎么拷贝复制到VMware虚拟机 我们打开虚

nodejs 实现文件拷贝

通过4中不通的方式实现对一个文件的拷贝 方式一:readFile 异步一次性读取文件再写入 //异步形式读取文件 function copyFile(url){ const extName = path.extname(url) const fileName = path.basename(url) const dirName = path.dirname(url) fs.readFile(url, (err, data) => { fs.writeFile(`${dirName}/${file

C#操作文件、文件夹(复制、删除、新增、设置只读)-技术&分享

C#操作文件.文件夹(复制.删除.新增.设置只读)-技术&分享 using System; using System.IO; using System.Windows; using System.Windows.Documents; using System.Xml; namespace WorkItemCreateBussiness.HzClass { public class HzFile { /// <summary> /// 删除指定文件夹下的所有文件和子文件夹 /// <

上海用友T1代理商,客户硬盘坏道不能拷贝复制mdf/ldf数据库sql2005修复

上海用友T1代理商,客户硬盘坏道不能拷贝复制 mdf/ldf数据库sql2005修复 代理商遇到这个问题,客户数据的凭证很重要不能数据库不能分离不能复制走,用mhdd检测很明显的发现 磁盘有坏块,用diskgen和坏盘拷贝器不能拷走,我们使用磁盘镜像工具进行文件镜像,然后用我们的数据库碎片读取工具进行读取,但是很遗憾的发现有几个表的索引坏了,我们请求客户提供了分历史账套好在客户历史账套中,对不发现出错的几个表是通用表,在对比了数据字典之后,我们对数据进行了导入操作dbcc没有任何问题,交付客户,

【ThinkingInC++】3、文件的拷贝

/** * 功能:文件的拷贝 * 时间:2014年8月8日07:40:21 * 作者:cutter_point */ #include<iostream> #include<stdlib.h> #include<fstream> #include<string> using namespace std; int main() { ifstream fin("test1.jpg", ios::binary); ofstream fout(&

Linux使用scp命令进行文件远程拷贝详解

前言 scp是 secure copy的缩写, scp是Linux系统下基于ssh登陆进行安全的远程文件拷贝命令.Linux的scp命令可以在Linux服务器之间复制文件和目录. 使用语法: scp  [参数] [源路径] @IP:/目标路径 scp 参数如下: -1: 强制scp命令使用协议ssh1 -2: 强制scp命令使用协议ssh2 -4: 强制scp命令只使用IPv4寻址 -6: 强制scp命令只使用IPv6寻址 -B: 使用批处理模式(传输过程中不询问传输口令或短语) -C: 允许压

AIX环境下文件远程传输复制工具--rsync安装测试

一.RSYNC简介   rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.rsync使用所谓的"rsync算法"来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快.  rsync的基本特点如下:1.可以镜像保存整个目录树和文件系统:2.可以很容易做到保持原来文件的权限.时间.软硬链接等:3.无须特殊权限即可安装:4.优化的流程,文件传输效率高:5.可以使用

linux下跨服务器文件文件夹的复制

文件的复制:scp –P (端口号) ./authorized_keys [email protected]:/home/berchina 文件夹的复制:scp -r -P (端口号) /home/berchina/hadoop-2.2.0 [email protected]:/home/berchina/ 注: 红色 字体是我敲击的命令 “#” 是注释语 [[email protected] server]# ftp 10.2.1.67     #登录服务器Connected to 10.2.

java 文件及文件夹拷贝

View.java package com.liang; import java.awt.Color; import java.awt.Dimension; import javax.swing.ButtonGroup; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JProgressBa