1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
| //文件系统 const fs = require('fs')
//同步读取 const fileData = fs.statSync(path) // 后续代码被阻塞 不会继续执行
//异步读取 获取到结果后回调执行 fs.stat(filepath,(err,info)=>{ if(err){ console.log(err) return false } console.log(info) })
//promise方式 代码不会被阻塞 fs.promises.stat(filepath).then(res=>{ console.log(res) }).catch(err=>{ console.log(err) })
//文件描述符 //返回描述符 fs.open(filepath,(err,fd //文件描述符(数字)可以通过这个描述符获取文件信息)=>{ if(err)=>{ console.log(err) return false } //通过描述符获取文件信息 fs.fstat fs.fstat(fd,(err,info)=>{ console.log(info//文件信息) console.log(info.isDirectory()//判断是否是文件夹) }) })
//文件读写 const str = '123' options有两个选项' flag: w打开文件写入 默认值 w+打开文件进行读写 如果不存在则创建并写入 r+打开文件进行1读写,如果不存在则抛出异常 r打开文件读取,读取时默认值 a打开要写入的文件,将流放在文件末尾,如果不存在则创建文件 a+打开文件以进行读写,将流放在末尾,如果不存在则创建文件 fs.writeFile('/1.txt',content,{flag:'a',encoding:''},(err)=>{ if(err){ console.log(err) } })
//文件读取 如果不填写encoding,呢嘛返回buffer fs.readFile('',{encoding:'utf-8'},(err,data)=>{ console.log(data) //buffer二进制在不使用encoding的情况下 })
//文件夹操作 1:创建文件夹 const dirname = './why' if(fs.existsSync(dirname) //检测文件夹是否存在){ fs.mkdir(dirname,err => { console.log(err) }) } fs.mkdir //盲猜可以弄个脚本自动生成组件文件夹名 2:读取文件夹中所有文件 const readdir(dirname,(err,files)=>{ console.log(files)//获取所有文件 }) //递归调用读取文件名 const getFiles = (dirname)=>{ fs.readdir(firname,{withFileTypes:true},(err,files)=>{ console.log(files) file.forEach(item=>{ if(item.isDirectory()){ const filepath = path.resolve(dirname,item.name) getFiles(filepath) }else{ console.log(item.name) } }) }) } getFiles(dirname) 3:文件夹重命名 fs.rename(旧名称,新名称,err=>{ console.log(err) }) fs.rename('./why','./kobe',err=>{ console.log(err) })
|