Nodejs基础二
- fs模块
- 文件重命名和移动
- 文件的重命名
- 文件的移动
- 同步重命名和移动
- 文件的删除
- 使用unlink进行删除
- unlink异步删除
- unlinkSync同步删除
- 使用rm进行删除
- rm异步删除
- rmSync同步删除
- 文件夹操作
- 创建文件夹
- 递归创建文件夹
- 读取文件夹
- 删除文件夹
- rmdir删除文件夹
- 删除递归文件夹
- 使用rm删除文件夹(建议使用)
- 查看资源状态
- fs路径
- 相对路径
- 绝对路径
- 相对路径的一个小bug
- 解决
fs模块
文件重命名和移动
在 Node.js 中,我们可以使用 rename 或 renameSync 来移动或重命名 文件或文件夹
语法:
fs.rename(oldPath, newPath, callback)
fs.renameSync(oldPath, newPath)
参数说明:
- oldPath 文件当前的路径
- newPath 文件新的路径
- callback 操作后的回调
文件的重命名
//1.导入fs模块
const fs=require('fs')//2.调用rename方法
fs.rename('./座右铭.txt','./论语.txt',err=>{if(err){console.log("重命名失败!")return;}console.log("重命名成功!")
})
代码执行前:
代码执行后:
文件的移动
//文件的移动
const fs=require('fs')fs.rename('./练习文档/清平调.txt','./资料/test/清平调.txt',err=>{if(err){console.log("移动错误")return;}console.log("移动成功")
})
移动前:
移动后:
同步重命名和移动
const fs=require('fs')
//同步重命名
fs.renameSync('./练习文档/数据.txt','./练习文档/data.txt')//同步移动
fs.renameSync('./练习文档/数据.txt','./资料/test/数据.txt')
重命名前:
重命名后:
移动前:
移动后:
文件的删除
使用unlink进行删除
unlink异步删除
//1、引入fs模块
const fs=require('fs')//2、使用unlink进行删除
fs.unlink('./hello.txt',err=>{if(err){console.log("删除失败")return}console.log("删除成功")
})
删除前:
删除后:
unlinkSync同步删除
//1、引入fs模块
const fs=require('fs')
//使用unlinkSync同步删除
fs.unlinkSync('./test文稿.txt')
删除前:
删除后:
使用rm进行删除
rm异步删除
//1、引入fs模块
const fs=require('fs')
//2、使用rm异步删除
fs.rm('./test文稿1.txt',err=>{if(err){console.log("删除失败")return}console.log("删除成功")
})
删除前:
删除后:
rmSync同步删除
//1、引入fs模块
const fs=require('fs')
//2、使用rmSync同步删除
fs.rmSync('./test文稿2.txt')
删除前:
删除后:
文件夹操作
创建文件夹
在 Node.js 中,我们可以使用 mkdir 或 mkdirSync 来创建文件夹
语法:
fs.mkdir(path[, options], callback)
fs.mkdirSync(path[, options])
参数说明:
- path 文件夹路径
- options 选项配置( 可选 )
- callback 操作后的回调
//1、引入fs模块
const fs=require('fs')
//2、使用mkdir创建文件夹 mk == make 制作 dir == directory
fs.mkdir('./html',err=>{if(err){console.log("创建失败")return}console.log("创建成功")
})
创建前:
创建后:
递归创建文件夹
//1、引入fs模块
const fs=require('fs')//2、递归创建
fs.mkdir('./a/b/c',{recursive:true},err=>{if(err){console.log("创建失败!")return}console.log("创建成功!")
})
创建后:
读取文件夹
在 Node.js 中,我们可以使用 readdir 或 readdirSync 来读取文件夹
语法:
fs.readdir(path[, options], callback)
fs.readdirSync(path[, options])
参数说明:
- path 文件夹路径
- options 选项配置( 可选 )
- callback 操作后的回调
//读取文件夹
//1、引入fs模块
const fs=require('fs')//2、读取文件夹
fs.readdir('./练习文档',(err,data)=>{if(err){console.log("读取失败")return}console.log("data",data)
})
删除文件夹
在 Node.js 中,我们可以使用 rmdir 或 rmdirSync 来删除文件夹
语法:
fs.rmdir(path[, options], callback)
fs.rmdirSync(path[, options])
参数说明:
- path 文件夹路径
- options 选项配置( 可选 )
- callback 操作后的回调
rmdir删除文件夹
//删除文件夹
const fs=require('fs')fs.rmdir('./html',err=>{if(err){console.log("删除失败!")return}console.log("删除成功")
})
删除前:
删除后:
删除递归文件夹
//删除递归
const fs=require('fs')fs.rmdir('./a',{recursive:true},err=>{if(err){console.log("删除失败")return}console.log("删除成功")
})
删除前:
删除后:
使用rm删除文件夹(建议使用)
//使用rm删除文件夹
const fs=require('fs')
fs.rm('./a',{recursive:true},err=>{if(err){console.log("删除失败")return}console.log("删除成功")
})
删除前:
删除后:
查看资源状态
在 Node.js 中,我们可以使用 stat 或 statSync 来查看资源的详细信息
语法:
fs.stat(path[, options], callback)
fs.statSync(path[, options])
参数说明:
- path 文件夹路径
- options 选项配置( 可选 )
- callback 操作后的回调
结果值对象结构:
- size 文件体积
- birthtime 创建时间
- mtime 最后修改时间
- isFile 检测是否为文件
- isDirectory 检测是否为文件夹
//1、导入fs模块
const fs=require('fs')fs.stat('./资料/测试.mp4',(err,data)=>{if(err){console.log("操作失败")return}console.log(data)//判断是否是文件console.log(data.isFile())//判断是否是文件夹console.log(data.isDirectory())
})
fs路径
fs 模块对资源进行操作时,路径的写法有两种:
- 相对路径
- ./座右铭.txt 当前目录下的座右铭.txt
- 座右铭.txt 等效于上面的写法
- …/座右铭.txt 当前目录的上一级目录中的座右铭.txt
- 绝对路径
- D:/Program Files windows 系统下的绝对路径
- /usr/bin Linux 系统下的绝对路径
相对路径
const fs=require('fs')//相对路径
fs.writeFileSync('./练习文档/index.html','love') //在当前目录下的练习文档中创建
fs.writeFileSync('index.html','love') //在当前目录下创建
fs.writeFileSync('../index.html','love') //在当前目录的上一级目录下创建
绝对路径
const fs=require('fs')//绝对路径
fs.rmSync('F:/nodejs-learning/index.html')
fs.rmSync('F:/nodejs-learning/练习文档/index.html')
相对路径的一个小bug
const fs=require('fs')//相对路径的参照物:命令行的工作目录
fs.writeFileSync('./index.html','love')
代码执行方式:
解决
const fs=require('fs')//绝对路径'全局变量'保存的是:所在文件的所在目录的绝对路径
console.log("__dirname",__dirname)
fs.writeFileSync(__dirname+'/index.html','love')