nodejs fs模块
node底层使用 c++ ,可以对文件进行编写
目录修改:
const fs = require('fs')
// 编写目录 参数一:路径 参数二:执行完的回调
fs.mkdir('./avatar',(err) => {
// console.log(err); // 创建成功 err为 null
if(err && err.code==="EEXIST"){
console.log('文件已存在')
}
})
// 修改目录名 参数一:目录 参数二:修改为 参数三:执行完的回调
fs.rename('./avatar','./a',(err) => {
// console.log(err);
if(err && err.code==='ENOENT') {
console.log('当前目录不存在')
}
})
// 删除目录: 目录中有文件 会删除失败,只能删除空文件
fs.rmdir('./a',err => {
// console.log(err);
if(err && err.code==='ENOENT') {
console.log('当前目录不存在')
}
})
// 查看目录 或 文件 详细信息
fs.stat('./avatar', (err, data) => {
console.log(data) // 返回对象,创建文件时间,文件大小
console.log(data.isFile()); // 查看是不是文件
console.log(data.isDirectory()); //查看是不是目录
})
文件读写创建删除:
const fs = require('fs')
// 创建文件并写入内容 参数一:路径(没有该文件回自动创建) 参数二:写入内容 参数三:执行完的回调
fs.writeFile('./avatar/a.txt',"hello",err => {
console.log(err);
// 重新执行不会添加,而是覆盖原来的内容
})
// 读文件1 参数一:路径 参数二:执行完的回调
fs.readFile('./avatar/a.txt',(err,data)=>{
//回到函数的error-first风格:错误在前,真正的内容再后
if(!err){
// buffer对象,使用 toString("utf-8")转为字符串
console.log(data.toString("utf-8"));
}
})
// 读文件2 参数一:路径 参数二:内容格式 参数三:执行完的回调
fs.readFile('./avatar/a.txt',"utf-8",(err,data)=>{
//回到函数的error-first风格:错误在前,真正的内容在后
if(!err){
// buffer对象,使用 toString("utf-8")转为字符串
console.log(data);
}
})
// unlin异步 删除文件: 参数一:路径
fs.unlink('./avatar/a.txt',(err)=>{
console.log(err); // null 代表删除成功
if(err && err.code ==="ENOENT") {
console.log("没有这样的文件或目录");
}
})
// 删除目录下所有文件
fs.readdir('./avatar',(err,data) => {
// 读取到所有文件,对数组进行forEach 循环删除
data.forEach((item)=>{
fs.unlink(`./avatar/${item}`,err => {
console.log(err);
})
})
// 不能直接在这删除目录,因为unlin是异步的,不会阻塞后面执行
// fs.rmdir('./avatar',err=>{})
})
注意:模块添加Sync为同步执行,会阻塞下面的代码