node.js使用fs模块复制(剪切)目录和删除目录
Posted 二木成林
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了node.js使用fs模块复制(剪切)目录和删除目录相关的知识,希望对你有一定的参考价值。
复制(剪切)目录
复制目录涉及子目录复制的问题,需要使用到递归。
代码如下:
var fs = require('fs')
var path = require('path')
/**
* 将指定src目录下的所有文件剪切到指定目标dest目录下
* @param src 源目录
* @param dest 目标目录
*/
function copyDirectory(src, dest)
var files = fs.readdirSync(src);
files.forEach((item, index) =>
var itemPath = path.join(src, item);
var itemStat = fs.statSync(itemPath);// 获取文件信息
var savedPath = path.join(dest, itemPath.replace(src, ''));
var savedDir = savedPath.substring(0, savedPath.lastIndexOf('\\\\'));
if (itemStat.isFile())
// 如果目录不存在则进行创建
if (!fs.existsSync(savedDir))
fs.mkdirSync(savedDir, recursive: true);
// 写入到新目录下
var data = fs.readFileSync(itemPath);
fs.writeFileSync(savedPath, data);
// 并且删除原文件
fs.unlinkSync(itemPath);
else if (itemStat.isDirectory())
copyDirectory(itemPath, path.join(savedDir, item));
);
// 并且删除原目录
fs.rmdirSync(src);
copyDirectory('D:\\\\NodeJs\\\\node-demo\\\\abc', 'G:\\\\Trash\\\\files\\\\abc');
注意,上面的功能应该说是剪切更为合适,因为删除了原目录和文件。
删除目录
/**
* 删除指定目录下所有文件和目录
* @param dir 指定目录
*/
function delDirectory(dir)
let files = [];
if (fs.existsSync(dir))
files = fs.readdirSync(dir);
files.forEach((file, index) =>
let curPath = path.join(dir, file);
var stat = fs.statSync(curPath);
if (stat.isDirectory())
delDirectory(curPath); //递归删除文件夹
else if (stat.isFile())
fs.unlinkSync(curPath); //删除文件
);
fs.rmdirSync(dir);
以上是关于node.js使用fs模块复制(剪切)目录和删除目录的主要内容,如果未能解决你的问题,请参考以下文章
Node.js——fs模块(文件系统),创建删除目录(文件),读取写入文件流