nodejs对文件中的图片进行归类操作示例

 更新时间:2023年07月24日 08:35:17   作者:。。。嗯  
这篇文章主要为大家介绍了nodejs对文件中的图片进行归类的实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

文件目录结构

├── 3.png
├── 4.jpg
├── demo1
│  ├── 1.png
│  └── 2.png
├── demo2
│  ├── 1.svg
│  ├── 2.svg
│  └── demo3
│    ├── 10.svg
│    ├── 11.svg
│    └── demo4
│      ├── 12.svg
│      └── demo5
│        └── 13.png
└── move.js

实现的效果是想要把png放到一个文件夹中, jpg放到一个文件夹中, svg放到一个文件夹中, 结构如下

├── categorized
│  ├── jpg
│  │  └── 4.jpg
│  ├── png
│  │  ├── 1.png
│  │  ├── 13.png
│  │  ├── 2.png
│  │  └── 3.png
│  └── svg
│    ├── 1.svg
│    ├── 10.svg
│    ├── 11.svg
│    ├── 12.svg
│    └── 2.svg

实现的代码如下

/*
 * @Author: DZL
 * @Date: 2023-07-23 20:52:29
 * @LastEditors: DZL
 * @LastEditTime: 2023-07-23 20:57:40
 * @Description: 
 */
const fs = require("fs").promises;
const path = require("path");
// 源图片文件夹
const srcDir = "./assets";
async function checkAndCreateFolder(folderPath) {
  try {
    // 确保文件夹路径存在
    await fs.mkdir(folderPath, { recursive: true });
    // 使用fs.access检查文件夹是否存在
    await fs.access(folderPath, fs.constants.F_OK);
    return true;
  } catch (err) {
    console.error("文件夹不存在:", err);
    return false;
  }
}
// 递归读取图片
const categorizeImages = async (dir) => {
  const files = await fs.readdir(dir);
  for (let file of files) {
    const filePath = path.join(dir, file);
    const stat = await fs.stat(filePath);
    if (stat.isDirectory()) {
      // 递归读取子文件夹
      categorizeImages(filePath);
    } else {
      // 获取扩展名
      const ext = path.extname(file);
      let folder = `./categorized/${ext.substring(1)}`;
      let exists = await checkAndCreateFolder(folder);
      if (exists) {
        const destPath = path.join(folder, file);
        await fs.copyFile(filePath, destPath);
        console.log(`Moved ${file} to ${folder}`);
      }
    }
  }
};
categorizeImages(srcDir);

以上就是nodejs对文件中的图片进行归类实现详解的详细内容,更多关于nodejs文件图片归类的资料请关注脚本之家其它相关文章!

相关文章

  • node环境执行js文件的完整步骤

    node环境执行js文件的完整步骤

    Nodejs下运行JS代码有两种方式,一种是在Node.js的交互环境下运行,另外一种是把代码写入文件中,然后用node命令执行文件代码,下面这篇文章主要给大家介绍了关于node环境执行js文件的相关资料,需要的朋友可以参考下
    2023-02-02
  • 从零开始学习Node.js系列教程五:服务器监听方法示例

    从零开始学习Node.js系列教程五:服务器监听方法示例

    这篇文章主要介绍了Node.js服务器监听方法,结合实例形式分析了nodejs事件监听相关操作技巧,需要的朋友可以参考下
    2017-04-04
  • 深入理解Node.js中的进程管理

    深入理解Node.js中的进程管理

    这篇文章主要介绍了Node.js中进程管理的相关资料,文中通过示例代码介绍的非常详细,相信对大家的学习或者工作具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-03-03
  • 如何用nodejs搭建代理服务器

    如何用nodejs搭建代理服务器

    这篇文章主要介绍了如何用nodejs搭建代理服务器,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • npm与node版本不匹配问题解决思路及方法

    npm与node版本不匹配问题解决思路及方法

    当nodejs和npm的版本不匹配时,会出现一些奇怪的报错,这是因为npm与nodejs版本不兼容导致的,这篇文章主要给大家介绍了关于npm与node版本不匹配问题解决思路及方法的相关资料,需要的朋友可以参考下
    2023-11-11
  • 我用的一些Node.js开发工具、开发包、框架等总结

    我用的一些Node.js开发工具、开发包、框架等总结

    这篇文章主要介绍了我个人使用的一些Node.js开发工具、开发包、框架等总结,需要的朋友可以参考下
    2014-09-09
  • 给nodejs升级的两种方法

    给nodejs升级的两种方法

    nodejs是一种流行的服务器端JavaScript运行环境,它经常需要更新以获取最新的功能和性能优化,本文将给大家介绍了给nodejs升级的两种方法,文中通过代码示例讲解非常详细,需要的朋友可以参考下
    2023-12-12
  • Koa 使用小技巧(小结)

    Koa 使用小技巧(小结)

    这篇文章主要介绍了Koa 使用小技巧(小结),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10
  • Windows部署NVM并下载多版本Node.js的方法(含删除原有Node的方法)

    Windows部署NVM并下载多版本Node.js的方法(含删除原有Node的方法)

    这篇文章主要介绍了Windows部署NVM并下载多版本Node.js的方法(含删除原有Node的方法),文中通过图文结合的方式讲解的非常详细,对大家了解Node.js有一定的帮助,需要的朋友可以参考下
    2025-01-01
  • 10个最优秀的Node.js MVC框架

    10个最优秀的Node.js MVC框架

    这篇文章主要为大家详细介绍了10个最优秀的Node.js MVC框架,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08

最新评论