当前位置: 代码网 > it编程>前端脚本>Node.js > 使用Node操作文件夹的常用API

使用Node操作文件夹的常用API

2024年09月12日 Node.js 我要评论
一.写在前面在node系列的第一篇文章中我们讲解了node的基本知识和文件的读写操作,这篇文章我们将学习node对文件夹的操作,当我们学习完文件夹的操作后结合文件的操作我们就可以真正的通过node在日

一.写在前面

在node系列的第一篇文章中我们讲解了node的基本知识和文件的读写操作,这篇文章我们将学习node对文件夹的操作,当我们学习完文件夹的操作后结合文件的操作我们就可以真正的通过node在日常的工作生活中解决许多和文件相关的问题,这篇文章我们将首先讲解文件夹操作的几个api,然后完成一下最常见的文件夹递归的操作。

二.node文件夹操作常用api

  • 使用node异步创建文件夹:
const fs = require("fs");
fs.mkdir("./code",(err,file)=>{
  if(err){
    console.log("文件夹创建失败");
  }else{
    console.log(file);
  }
})
  • 使用node同步创建文件夹(推荐使用异步操作)
const fs = require("fs");
fs.mkdirsync("./aaa");
  • 获取文件夹中的内容,读取到的是文件夹中内容名称的字符串。
const fs = require("fs");
fs.readdir("./code",(err,filelist)=>{
    if(err){
        console.log("文件夹读取失败");
    }else{
        console.log(filelist);
    }
})

  • 读取文件夹获取文件夹中的信息:需要添加一个属性withfiletypes:true就可以获取文件夹中的信息。
const fs = require("fs");
fs.readdir("./code",{withfiletypes:true},(err,filelist)=>{
    if(err){
        console.log("文件夹读取失败");
    }else{
        console.log(filelist);
    }
})

  • 对文件夹进行重命名:第一个参数是当前文件名,第二个参数是新的文件名。
const fs = require("fs");
fs.rename("./aaa","./why",(err,flag)=>{
    if(err){
        console.log("文件重命名失败");
    }else{
        console.log("文件重命名成功");
    }
})

三.递归获取文件夹中的信息

我们在上述进行文件夹的操作都是基于一层文件夹的,但是在实际的工作和生活中,文件夹往往是很多层的,如果我们在不知道文件夹有多少层的情况下如何获取文件夹中的所有信息?答案就是递归,我们假设有一个文件夹,文件夹中嵌套了很多文件夹和文件,现在需要你将这个文件夹中的所有的信息全部读取处理。

const fs = require("fs");

function readdictionary(dir){
    fs.readdir(dir,{withfiletypes:true},(err,filelist)=>{
        filelist.foreach(item=>{
            if(item.isdirectory()){
                readdictionary(`${dir}/${item.name}`)
            }else{
                console.log(item.name);
            }
        })
    })
}
readdictionary('./code')

四.总结

这篇文章主要讲解的是node中常见的文件夹操作,包括文件夹的新建(同步操作/异步操作),文件夹中信息的读取,文件夹的重命名,这几个api是最文件夹操作中常用的几个api,如果之后在开发中遇到需要使用其他api的时候可以对应的去查询,在文章的最后我们尝试着写了一下文件夹操作中经典操作---递归读取,这个操作在文件夹操作中比较常用,希望各位小伙伴能够花点时间去掌握它。

以上就是使用node操作文件夹的常用api的详细内容,更多关于node操作文件夹的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com