NodeJS 文件夹拷贝以及删除

文件夹拷贝

function CopyDirectory(src, dest) {
    if (IsFileExist(dest) == false) {
        fs.mkdirSync(dest);
    }
    if (fs.existsSync(src) == false) {
        return false;
    }
    // console.log("src:" + src + ", dest:" + dest);
    // 拷贝新的内容进去
    var dirs = fs.readdirSync(src);
    dirs.forEach(function(item){
        var item_path = path.join(src, item);
        var temp = fs.statSync(item_path);
        if (temp.isFile()) { // 是文件
           // console.log("Item Is File:" + item);
            fs.copyFileSync(item_path, path.join(dest, item));
        } else if (temp.isDirectory()){ // 是目录
            // console.log("Item Is Directory:" + item);
            CopyDirectory(item_path, path.join(dest, item));
        }
    });
}

文件夹删除

function DeleteDirectory(dir) {
    if (fs.existsSync(dir) == true) {
        var files = fs.readdirSync(dir);
        files.forEach(function(item){
            var item_path = path.join(dir, item);
           // console.log(item_path);
            if (fs.statSync(item_path).isDirectory()) {
                DeleteDirectory(item_path);
            }
            else {
                fs.unlinkSync(item_path);
            }
        });
        fs.rmdirSync(dir);
    }
}

 

你可以使用 Vue.js 中的 axios 库和 Node.js 中的 fs 模块来实现获取一个文件夹里的图片个数。 以下是一个简单的实现方式: 1. 在 Vue.js 的组件中,使用 axios 发送一个 GET 请求到后端,请求获取某个文件夹的图片列表。 2. 在后端,使用 Node.js 的 fs 模块读取该文件夹下的所有文件,筛选出图片类型的文件(例如 .jpg、.png 等),并返回图片列表给前端。 3. 在前端,通过获取到的图片列表,统计图片数量即可。 以下是一个简单的示例代码: ``` // 前端代码 <template> <div> <p>图片个数:{{ imageCount }}</p> </div> </template> <script> import axios from 'axios'; export default { data() { return { imageCount: 0, }; }, mounted() { axios.get('/api/getImageList') .then(response => { // 统计图片个数 this.imageCount = response.data.filter(file => /\.(jpg|png|jpeg)$/.test(file)).length; }) .catch(error => { console.error(error); }); }, }; </script> // 后端代码 const express = require('express'); const fs = require('fs'); const path = require('path'); const app = express(); // 获取指定文件夹下的所有文件 function getAllFiles(dirPath, arrayOfFiles) { const files = fs.readdirSync(dirPath); arrayOfFiles = arrayOfFiles || []; files.forEach(file => { if (fs.statSync(dirPath + "/" + file).isDirectory()) { arrayOfFiles = getAllFiles(dirPath + "/" + file, arrayOfFiles); } else { arrayOfFiles.push(path.join(dirPath, "/", file)); } }); return arrayOfFiles; } app.get('/api/getImageList', (req, res) => { const dirPath = '/path/to/image/folder'; // 修改为你需要获取的文件夹路径 const files = getAllFiles(dirPath); res.send(files); }); app.listen(3000, () => { console.log('Server started on port 3000'); }); ``` 请注意,上述代码仅供参考,实际应用中可能需要根据具体情况进行修改和完善。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值