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,若不存在则新建目录)
使用方法:
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 创建或写入文件:(此文件若是存在则替换新传入内容,若不存在则新建文件并写入内容)
使用方法:
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 追加文件:(此文件若是存在则追加新传入内容(相当于+=),若不存在则新建文件并写入内容)
使用方法:
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类型内容)
使用方法:
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:\Nodejs\day_02_02\aaaa'] {
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目录则可以删除成功)