zoukankan      html  css  js  c++  java
  • fileStystem模块

    后端语言都有操作文件系统的能力,在nodejs里我们依靠的是fs模块

    每种操作的方法基本都有同异步的两种不同方法
     
    1.查看文件信息(多用来判断文件是否存在)exists
     
    var fs=require('fs');
    //异步查询文件信息
    fs.stat("../sources/temp.txt",(err,data)=>{
    	if(err){
    		console.log(err);
    	}else{
    		console.log(data)
    		//判断是否是文件
    		console.log(`文件:${data.isFile()}`)
    		//判断是否是路径
    		console.log(`目录:${data.isDirectory()}`)
    	}
    })
    //同步查询
    //fs.statSync("../sources/temp.txt")
    
    console.log(1)
    

     

    2.创建一个目录
    //创建一个目录,如果目录已存在的话就会返回错误信息
    fs.mkdir("logs",function(err){
    	if(err){
    		console.log(err);
    	}else{
    		console.log('success');
    	}
    })
    

      

    3.写入文件
    //给文件写内容,当文件不存在会创建一个文件,第二个参数为写入的内容,每次写入都会覆盖
    fs.writeFile('logs/hello.log','hello everyone
    ',function(err){
    	if(err){
    		console.log(err);
    	}else{
    		console.log('success')
    	}
    })
    //给文件中追加内容
    fs.appendFile("logs/hello.log",'hello world
    ',function(err){
    	if(err){
    		console.log(err);
    	}else{
    		console.log('success')
    	}
    })
    

      

    4.读取文件内容
    //读取文件内容的方法,第二个参数可选,为读取的编码格式
    fs.readFile("logs/hello.log",'utf-8',function(err,data){
    	if(err){
    		console.log(err);
    	}else{
    		console.log(data)
    	}
    })
    

      

    5.读取目录内容
    //读取目录内容,返回一个数组
    fs.readdir("logs",function(err,files){
    	if(err){
    		console.log(err);
    	}else{
    		console.log(files)
    	}
    })
    

      

    6.文件重命名
    //重命名方法
    fs.rename("logs/hello.log","logs/world.log",function(err){
    	if(err){
    		console.log(err)
    	}else{
    		console.log('success')
    	}
    })
    

      

    7.删除目录、文件
    fs.rmdir可以删除目录但是,必须是空目录,fs.unlink可以删除文件,如果我们要删除一个目录及它下面的文件或子目录的话,我们需要先读取出来,删除完成后再进行根目录的删除
     
    小练习:创建一个copy复制文件的函数
    const fs = require('fs')
    const _path = require('path')
    
    let copy = (path,target)=>{
        fs.stat(path,(err)=>{
            if(err){
                console.log('要复制的文件不存在')
            }else{
                let content = fs.readFileSync(path)
                fs.writeFile(target+'/'+_path.basename(path).replace('.','-副本.'),content,(err)=>{
                    if(err){console.log('目标目录不存在')}else{
                        console.log('success')
                    }
                })
            }
        })
    }
    copy('./sources/hello.txt','./sources/a')
    

      

    8.fs-extra模块
    这是一个第三方的fs模块,需要下载 npm install fs-extra

    fs模块上的方法它都有,并且还封装了一些很好用的方法,比如:copy、remove..

  • 相关阅读:
    数据库中的LEFT JOIN 个人理解
    C++ 类的继承方式
    KMP字符串匹配算法
    C++ 运算符重载_加号
    Pin API INS
    Python 爬虫爬取多页数据
    Pin
    NO.12 13 章 字符串&扩展(哈希、KMP、分块、BIT)
    NO.11章 DP(递归递推、最大连续子序列和、LIS、LCS、最长回文子串、DAG、背包)
    NO.10章 图(遍历、最短路、生成树、拓扑、关键路径)
  • 原文地址:https://www.cnblogs.com/llc-url/p/7954635.html
Copyright © 2011-2022 走看看