zoukankan      html  css  js  c++  java
  • [nodejs]fs文件模块-练习

    创建一个upload文件夹

    const fs = require('fs');
    
    // 创建文件夹
    const mkdir = (path) => new Promise((resolve) => {
      fs.mkdir(path, (err) => {
        resolve({ err });
      });
    });
    // 获取文件状态
    const getStat = (path) => new Promise((resolve) => {
      fs.stat(path, (err, stat) => {
        resolve({ err, stat });
      })
    });
    // 删除文件
    const unlink = (path) => new Promise((resolve) => {
      fs.unlink(path, (err) => {
        resolve({ err })
      })
    });
    
    const createDir = async (path) => {
      const { err, stat } = await getStat(path);
      if (!err && stat.isDirectory()) {
        console.log(`directory ${path} is already exist.`);
        return;
      }
      if (!err && stat.isFile()) {
        console.log(`unlink file ${path}`);
        await unlink(path);
      }
      const { err: mkdirErr } = await mkdir(path);
      if (!mkdirErr) {
        console.log(`create directory ${path}`);
      } else {
        console.error(`create directory error ${mkdirErr.toString()}`);
      }
    };
    
    createDir('./upload');

    找出目录wwwroot下的所有目录

    const fs = require('fs');
    
    // 读取目录下的所有目录和文件
    const readdir = (path) => new Promise((resolve) => {
      fs.readdir(path, (err, files) => {
        resolve({ err, files });
      });
    });
    // 获取文件和目录状态
    const getStat = (path) => new Promise((resolve) => {
      fs.stat(path, (err, stat) => {
        resolve({ err, stat });
      });
    });
    
    const getDirectory = async (path) => {
      const { err, files } = await readdir(path);
      if (err) {
        console.log(`${path} is not a directory`);
        return;
      }
      const directorys = [];
      for (let i = 0; i < files.length; i++) {
        const file = files[i];
        const filePath = `${path}/${file}`;
        const { err, stat } = await getStat(filePath);
        if (!err && stat.isDirectory()) {
          directorys.push(file);
        }
      }
      console.log(directorys);
      return directorys;
    };
    
    getDirectory('./wwwroot');
  • 相关阅读:
    C++primer拾遗(第五章:语句)
    每日编程-20170315
    C++primer拾遗(第四章:表达式)
    C++primer拾遗(第三章:字符串、向量和数组)
    每日编程-20170314
    C++primer拾遗(第二章:变量和基本类型)
    每日编程-20170313
    每日编程-20170310
    每日编程-20170309
    C++primer拾遗(第一章:开始)
  • 原文地址:https://www.cnblogs.com/zhoulixue/p/15427640.html
Copyright © 2011-2022 走看看