NodeJS拷贝一个文件到另一个文件夹

nodejs拷贝一个文件到另一个文件夹

背景

背景是公司想做push之前的code review。

本地仓库下的git hook

这里可能要普及一下。在Git本地仓库,可以看到.git/hooks路径下有一些.sample的文件。删除pre-push.sample文件的后缀名,自己编辑一下,就可以了。
但是要确保每个开发自己的Git本地仓库的hooks路径下都有一个pre-push,所以要有一个拷贝动作。一开始我用的是批处理文件,在copy.bat下写了复制的动作。后来由于种种原因,我们的TL建议我把这个动作放到一个js文件中。

NodeJS的复制。

由于我从来没有接触过js,所以开始就百度了一下,首先看了一下参考文献中的[1],不知道为什么,我本地一直调不出来。总是报错。
然后有试了下参考文献中的[2], 这个是好用的,然而是一个文件夹下的所有文件全部拷到另一个文件夹下。而且很长。修改一下也是可以用的,但是还想找一个更好的。
于是,经过层层百度,终于自己写了一个。
附上代码

var fs = require('fs');
var path = require('path');


// 增加文件夹
function createFolder(dirpath, dirname) {
	if (typeof dirname === "undefined") {
		if (fs.existsSync(dirpath)) {
		} else {
			createFolder(dirpath, path.dirname(dirpath));
		}
	} else {
		if (dirname !== path.dirname(dirpath)) {
			createFolder(dirpath);
			return;
		}
		if (fs.existsSync(dirname)) {
			fs.mkdirSync(dirpath)
		} else {
			createFolder(dirname, path.dirname(dirname));
			fs.mkdirSync(dirpath);
		}
	}
}

// 复制文件
function copyFile(orgfilepath, desdirpath, desfilename) {
    if (fs.existsSync(orgfilepath)) {
		let desfilepath = path.join(desdirpath, desfilename);
		if (!fs.existsSync(desfilepath)) {
			createFolder(desdirpath);
			fs.copyFileSync(orgfilepath, desfilepath);
		} else {
			console.error(Date().toString() + "FolderAndFileOperation_copyFile: des file already existed." + " new path: " + desfilepath.toString());
		}
	} else {
		console.error(Date().toString() + "FolderAndFileOperation_copyFile: org file not existed." + " org path: " + orgfilepath.toString());
	}
}

copyFile('./a/1.js', './b', "1.js");
参考文献

[1]https://www.jb51.net/article/122032.htm
[2]https://www.cnblogs.com/coding4/p/7495968.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值