node 实现图片的复制和删除整个目录中的文件

本文介绍了如何在Node.js中使用`fs`模块实现文件的异步读取和写入,以及如何用Promise封装文件删除操作。通过`createReadStream`和`createWriteStream`创建文件流,并展示了批量删除目录下文件的高效方法。
摘要由CSDN通过智能技术生成

在这里插入图片描述
index.js

var fs = require('fs')
function create(){
	let readStream = fs.createReadStream("./img/1.jpeg"); 
	for(let i=0;i<10;i++)
	{
		let writeStream = fs.createWriteStream("./img1/"+i+".jpeg");
		//创建管道
		readStream.pipe(writeStream);
	}
}
// 使用promise封装进行文件的删除
function fnDelete (path){
	return new Promise ((resolve,rejects)=>{
		fs.unlink(path,(err)=>{
			if(err)
			{
				rejects(err);
			}
			else
			{
				resolve("删除文件成功")
			}
		})
	
	})
}
// fnDelete('./img1/1.jpeg').then((res)=>{
// console.log(res);
// }
// )
// .catch((err)=>{
// 	console.log(err);
// })
//把两个函数导出
module.exports = {
	fnDelete,
	create
}

readfile.js

var fs = require('fs');
// 导入两个函数
var {fnDelete,create} = require('./index')
// 产生文件的函数
create();


// 普通的遍历目录文件进行删除
// fs.readdir('./img1',(err,files)=>{
// 	if(err){
// 		console.log(err);
// 	}
// 	else{
// 		console.log(files);
// 		files.forEach((item)=>{
// 			fnDelete('./img1/'+item);
// 		})
// 	}
// })

// 使用Promise进行封装
function readls (path) {
	return new Promise((resolve,rejects)=>{
		fs.readdir(path,(err,files)=>{
			if(err)
			{
				rejects(err);
			}
			else
			{
				resolve(files)
			}
		})
	})
}

// 调用封装好的promise函数
readls('./img1').then((files)=>{
	// 目录中无文件时
	if(files.length==0)
	{
		console.log("无文件可删除");
		return;
	}
	// 循环删除所有目录中的文件
	files.forEach((item)=>{
		fnDelete('./img1/'+item);
	})
})
// 错误时
.catch((err)=>{
	console.log(err);
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值