21xrx.com
2024-11-05 14:53:46 Tuesday
登录
文章检索 我的文章 写文章
Node.js 批量删除功能实现
2023-07-03 14:19:21 深夜i     --     --
Node js 批量删除 功能实现

在Node.js中,许多开发者需要实现批量删除文件或文件夹的功能。在本文中,我们将介绍如何使用Node.js实现这一功能。

1. 使用Node.js的fs模块删除文件

在Node.js中使用fs模块可以方便地对文件进行操作。要删除一个文件,可以使用fs.unlink()函数。例如,如果想要删除“example.txt”文件,可以使用下方代码:

js

const fs = require('fs')

fs.unlink('example.txt', (err) => {

 if (err) throw err;

 console.log('文件已删除');

});

2. 使用Node.js的fs模块删除文件夹

如果您要删除整个文件夹,那么您需要递归地删除它下面所有的文件和文件夹。代码如下:

js

const fs = require('fs');

const path = require('path');

function deleteFolderRecursive(folderPath) {

 if (fs.existsSync(folderPath)) {

  fs.readdirSync(folderPath).forEach((file, index) => {

   const curPath = path.join(folderPath, file);

   if (fs.lstatSync(curPath).isDirectory()) { //递归删除文件夹

    deleteFolderRecursive(curPath);

   } else { //删除文件

    fs.unlinkSync(curPath);

   }

  });

  fs.rmdirSync(folderPath); //删除文件夹自身

 }

}

3. 批量删除文件和文件夹

现在,我们可以将上述两个功能组合起来,实现批量删除文件和文件夹的功能。代码如下:

js

const fs = require('fs');

const path = require('path');

function deleteFile(filePath) {

 fs.unlinkSync(filePath);

}

function deleteFolderRecursive(folderPath) {

 if (fs.existsSync(folderPath)) {

  fs.readdirSync(folderPath).forEach((file, index) => {

   const curPath = path.join(folderPath, file);

   if (fs.lstatSync(curPath).isDirectory()) { //递归删除文件夹

    deleteFolderRecursive(curPath);

   } else { //删除文件

    deleteFile(curPath);

   }

  });

  fs.rmdirSync(folderPath); //删除文件夹自身

 }

}

function batchDelete(filesToDelete) {

 filesToDelete.forEach(file => {

  const absolutePath = path.resolve(file);

  if (fs.lstatSync(absolutePath).isDirectory()) {

   deleteFolderRecursive(absolutePath);

  } else {

   deleteFile(absolutePath);

  }

 });

}

batchDelete(['./example.txt', './folderToDelete']);

以上就是使用Node.js实现批量删除文件和文件夹的方法。当然,我们可以根据实际需要进行相应的修改和优化。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复