zoukankan      html  css  js  c++  java
  • Node学习-核心模块之fs文件模块的使用

    NodeJS学习笔记
      ~ fs 文件模块:
        常用方法有:
          1、fs.stat            |     检测是文件还是目录
          2、fs.mkdir         |     创建目录
          3、fs.writeFile     |     创建写入文件
          4、fs.appendFile   |     追加文件
          5、fs.readFile     |     读取文件
          6、fs.readdir       |     读取目录
          7、fs.rename         |     重命名/移动文件
          8、fs.rmdir          |     删除目录
          9、fs.unlink         |     删除文件
     
      ①.使用nodejs引入fs文件模块
        
    1 const fs = require('fs');

      1.fs.stat  检测是文件还是目录

        其中有两个常用方法 
          -- isFile()       判断是否为文件 返回值为:Boolean
          -- isDirectory()      判断是否为目录 返回值为:Boolean

        使用方法:

    1 fs.stat('./html', (err, data) => {
    2     if (err) throw err;
    3     console.log(`是文件:${data.isFile()}`);
    4     console.log(`是目录:${data.isDirectory()}`);
    5 })

        文件层级关系(*)


          │ app.js                            ----->               入口文件
          │ package.json

          └─html                            ----->           手动创建后执行           fs.stat


        执行命令:node app.js(下文所有执行结果之前执行命令全部相同)

        执行结果:是文件:false

             是目录:true


      2.fs.mkdir  创建目录:(此目录若是存在则返回err,若不存在则新建目录) 

              params:1.path:将创建的目录路径
                   2.mode 目录权限
                   3.callback 回调函数,传递异常参数err

        使用方法:

    1     fs.mkdir('./css', (err) => {
    2         if (err) throw err;
    3         console.log('创建成功');
    4     })

        文件层级关系(*)


          │ app.js                            ----->               入口文件
          │ package.json
          ├─css                             ----->             执行后           fs.mkdir

          └─html


      3.fs.writeFile 创建或写入文件:(此文件若是存在则替换新传入内容,若不存在则新建文件并写入内容) 

                 params:1.filename   将创建或写入的文件名称
                           2.data       写入的内容
                           3.options    数组对象(可不写)
                                 .encoding   设置文件编码(默认utf-8)
                                 .mode       设置文件权限(默认438)
                                 .flag       默认值‘w(覆盖)’
                           4.callback   回调函数,传递异常参数err

        使用方法:

    1     fs.writeFile('./html/index.html','你好! nodejs',(err)=>{
    2         if (err) throw err;
    3         console.log('创建写入文件成功!')
    4     })

        文件层级关系(*)


          │ app.js                            ----->               入口文件
          │ package.json
          ├─css

          └─html

            └─ index.html                             ----->             执行           fs.writeFile


      4.fs.appendFile  追加文件:(此文件若是存在则追加新传入内容(相当于+=),若不存在则新建文件并写入内容) 

             params:1.filename   将创建或写入的文件名称
                          2.data       写入的内容
                          3.options    数组对象(可不写)
                                .encoding   设置文件编码(默认utf-8)
                                .mode        设置文件权限(默认438)
                                .flag           默认值‘a(追加)’
                          4.callback   回调函数,传递异常参数err

        使用方法:

    1     fs.appendFile('./css/base.css','h2{color:blue}',(err)=>{
    2         if (err) throw err;
    3         console.log('写入并追加文件成功!')
    4     })

        文件层级关系(*)


          │ app.js                            ----->               入口文件
          │ package.json
          ├─css
          │   base.css                            ----->             执行           fs.appendFile

          └─html

            └─ index.html 


      5.fs.readFile 读取文件(默认返回为Buffer类型内容)

             params:1.filename   读取文件路径
                          2.options    数组对象(可不写)
                                .encoding   设置文件编码(默认Buffer 可设置为utf-8)
                          3.callback   回调函数,传递异常参数err和data数据

        使用方法:

    1     fs.readFile('./html/index.html','utf-8', (err, data) => {
    2         if (err) throw err;
    3         console.log(data)      
    4         console.log(data.toString()) // 当传入options参数为空时,可以使用toString方法把Buffer转换成string类型
    5     });

        执行结果:为html目录下index.html文件内容。


      6.fs.readdir  读取目录:返回当前(./html)目录下面一级子目录和文件

        使用方法:

     1     fs.readdir('./html', (err, data) => { // 返回当前(./html)目录下面一级子目录和文件
     2         if (err) throw err;
     3         console.log(data); //[ 'index.html', 'news_file.html' ]
     4         // |./html
     5         // |    |./js
     6         //          |index.js
     7         // |    |index.html
     8         // |    |news_file.html
     9         // console.log(data); // [ 'index.html', 'js', 'news_file.html' ]
    10     })

     


      7.fs.rename  重命名/移动文件

            params:1.oldPath:老路径

                 2.newPath:新路径

                 3.callback:回调函数

        使用方法:

     1     // |./css
     2     // |    |base.css
     3     // |    |aaa.css
     4 
     5     // 1.重命名
     6     fs.rename('./css/aaa.css', './css/index.css', (err) => {
     7         if (err) throw err;
     8         console.log('重命名成功')
     9     // |./css
    10     // |    |base.css
    11     // |    |index.css
    12     })
    13 
    14     // 2.移动文件
    15     fs.rename('./css/index.css', './html/index.css', (err) => {
    16         if (err) throw err;
    17         console.log('移动文件成功')
    18     // |./html
    19     // |    |index.css
    20     // |    |index.html
    21     // |    |...
    22     })

        文件层级关系(*)


          │ app.js                            ----->               入口文件
          │ package.json
          ├─css
          │   base.css 
          │   aaa.css(手动创建)  --rename(重命名)-->  index.css    ①:重命名执行                        fs.rename        

          └─html                      

            │ index.html                    
            └ index.css                            ----->             执行           ②:移动文件                        fs.rename           
            


      8.fs.rmdir 删除目录

        使用方法:

    1     fs.rmdir('./aaaa',(err)=>{ // 目录下方有 _文件 或者 _目录 则无法删除
    2     if(err) throw err;
    3     console.log('删除目录成功')
    4     })

        文件层级关系(*)


          │ app.js                            ----->               入口文件

          │ package.json
          │
          ├─aaaa                            手动创建
          │    index.html                            手动创建  

            


         执行结果:

          [Error: ENOTEMPTY: directory not empty, rmdir 'D:Nodejsday_02_02aaaa'] {
          errno: -4051,
          code: 'ENOTEMPTY',
          syscall: 'rmdir',
          path: 'D:\Nodejs\day_02_02\aaaa'
          }


      9.fs.unlink 删除文件

        使用方法:

    1     fs.unlink('./aaaa/index.html',(err)=>{ // 有则删,无则报错
    2         if(err) throw err;
    3         console.log('删除文件成功')
    4     })

        文件层级关系(*)


          │ app.js                            ----->               入口文件

          │ package.json
          │
          ├─aaaa                            手动创建
          │    index.html                            手动创建  

            


         执行结果:删除文件成功

        (此时再去删除aaaa目录则可以删除成功)

  • 相关阅读:
    golng切片实现分页
    go mgo包 简单封装 mongodb 数据库驱动
    docker 制作自己的镜像
    mongodb 数据库操作——备份 还原 导出 导入
    Override
    Parallel.For循环与普通的for循环的比较
    C#死锁案例代码
    C#的构造函数在基类和父类中执行顺序
    C#构造函数
    C# 多线程的死锁
  • 原文地址:https://www.cnblogs.com/chenghuayike/p/14154730.html
Copyright © 2011-2022 走看看