nodejs對(duì)文件中的圖片進(jìn)行歸類操作示例
文件目錄結(jié)構(gòu)
├── 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
實(shí)現(xiàn)的效果是想要把png放到一個(gè)文件夾中, jpg放到一個(gè)文件夾中, svg放到一個(gè)文件夾中, 結(jié)構(gòu)如下
├── categorized │ ├── jpg │ │ └── 4.jpg │ ├── png │ │ ├── 1.png │ │ ├── 13.png │ │ ├── 2.png │ │ └── 3.png │ └── svg │ ├── 1.svg │ ├── 10.svg │ ├── 11.svg │ ├── 12.svg │ └── 2.svg
實(shí)現(xiàn)的代碼如下
/*
* @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 {
// 獲取擴(kuò)展名
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對(duì)文件中的圖片進(jìn)行歸類實(shí)現(xiàn)詳解的詳細(xì)內(nèi)容,更多關(guān)于nodejs文件圖片歸類的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Node.js開發(fā)者必須了解的4個(gè)JS要點(diǎn)
這篇文章主要介紹了Node.js開發(fā)者必須了解的4個(gè)JS要點(diǎn),Node.js是一個(gè)面向服務(wù)器的框架,立足于Chrome強(qiáng)大的V8 JS引擎。盡管它由C++編寫而成,但是它及其應(yīng)用是運(yùn)行在JS上的,需要的朋友可以參考下2016-02-02
詳解Express筆記之動(dòng)態(tài)渲染HTML(新手入坑)
這篇文章主要介紹了詳解Express筆記之動(dòng)態(tài)渲染HTML(新手入坑),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-12-12
node文件上傳功能簡(jiǎn)易實(shí)現(xiàn)代碼
本篇文章主要介紹了node文件上傳功能簡(jiǎn)易實(shí)現(xiàn)代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-06-06
nodejs爬蟲抓取數(shù)據(jù)亂碼問(wèn)題總結(jié)
這篇文章主要給大家總結(jié)了下nodejs爬蟲抓取數(shù)據(jù)亂碼問(wèn)題的相關(guān)資料,需要的朋友可以參考下2015-07-07
Node.js中Bootstrap-table的兩種分頁(yè)的實(shí)現(xiàn)方法
這篇文章主要介紹了Node.js中Bootstrap-table的兩種分頁(yè)的使用方法,需要的朋友可以參考下2017-09-09
什么是MEAN?JavaScript編程中的MEAN是什么意思?
這篇文章主要介紹了什么是MEAN?JavaScript編程中的MEAN是什么意思?,跟lampp一樣,MEAN是指現(xiàn)代web應(yīng)用全棧開發(fā)工具一個(gè)組合,需要的朋友可以參考下2014-12-12

