一、文件操作
(一)、文件删除
1.异步:fs.unlink(path,callback)
fs.unlink(‘./hello.txt’,(err)=>{
console.lo(err)
//回调函数参数err返回错误信息或者null
})
2.同步:fs.unlinkSync(path) 不存在回调函数
fs.unlinkSync('./hello.txt')
(二)、文件的读取
1.异步:fs.readFile(path,[,options],callback)
/*
options写或者不写都不会影响程序的执行,它意思是,读取到的信息以什么方式输出。比如,填入’utf-8’,那么读取到的文件内容将以utf-8的格式输出。默认是buffer格式的。也可以通过Tostring的方式即将data转化成utf-8格式.
callback里面的参数有两个,一个是err,表示报错信息,一个是data,表示读取到的信息.
*/
//示例:
fs.readFile('./hello.txt','utf-8',(err,data)=>{
console.log(data,err)
})
2.同步:fs.readFileSync(path,[,options])
//需要用一个变量来接收读取到的内容
let content=fs.readFileSync('hello.txt','utf-8')
console.log(content)
(三)、文件内容写入
包含的功能(创建文件,写入,修改文件内容---与options挂钩)
1.异步:fs.writeFile(path,data,[options],callback)
/*
data:写入的内容
options:{flag:"a"},写入的方式。若options存在,则写入的内容接在当前文件内容的后面,否则,将采取覆盖的方式写入。
*/
//示例:
fs.writeFile('hello','海棠花未眠',{flag:"a"},(err)=>{
console.log(err)
})
2.同步:fs.writeFileSync(path,data,[options])
fs.writeFileSync('hello.txt','海棠花未眠',{flag:"a"})
二、文件夹操作
(一)、创建文件夹
一次只能创建一个
1.异步:fs.mkdir(pathName,callback)
/*
pathName:文件夹路径
callback:(err)=>{} || function(err){}
回调函数参数 err:返回报错信息 || null
*/
//示例:
fs.mkdir('./summer',(err)=>{
console.log(err)
})
2.同步:fs.mkdir(pathName)
fs.mkdir('./summer')
(二)、删除文件夹
1.异步:fs.rmdir(pathName,[,options],callback)
/*
pathName:文件夹路径
[,options]:设置{recursive:true}之后会强制删除文件夹里的所有内容
callback:(err)=>{} || function(err){}
回调函数参数 err:返回报错信息 || null
*/
//示例:
fs.rmdir('./folder',{recursive:true},(err)=>{
console.log(err)
})
2.同步: fs.rmdirSync(pathName,[,options])
fs.rmdir('./folder',{recursive:true})
注:另外一种方式rm,用法相同。
(三)、读取文件夹
返回值是一个数组 数组成员为子目录下的文件名及文件夹名
1.异步:fs.readdir(pathName,callback)
/*
pathName:文件夹路径
callback:(err,data)=>{} || function(err,data){}
回调函数参数 err:返回报错信息 || null
data:获取一个数组格式数据(文件夹子目录的文件和文件夹的名称)
*/
//示例:
fs.readdir('./folder',(err,data)=>{
console.log(err,data)
})
2.同步:fs.readdirSync(pathName)
let result = fs.readdirSync("./luyao")
console.log(result)
三、文件和文件夹的监听
(一)、判断文件或文件夹是否存在
fs.existSync(path)
//示例:返回值为布尔值
let result=fs.existsSync('./folder')
console.log(result)
console.log(fs.existsSync('./folder/summer.txt'))
(二)、查看文件或文件夹信息(不重要,用的不多)
fs.stat(path,callback)
path:文件夹或文件的地址
callback => 回调函数(err,data)=>{} || function(err,data){}
err:返回报错信息 || null
data: 获取文件和文件夹信息
存在同步和异步两种方式
(三)、修改文件名或文件夹名
功能:
1.剪切 oldPath==newPath,通过设置newPath进行位置修改达到剪切效果
2.改名 设置oldPath和newPath的名称不一致
1.异步:fs.rename(oldPath,newPath,callback)
/*
oldPath: 选择将需要修改的文件或文件夹地址(路径--文件需要后缀)
newPath: 将选择文件或文件夹进行重命名,并且选择放置位置(路径-地址)
callback => 回调函数(err)=>{} || function(err){}
回调函数参数
err:返回报错信息 || null
*/
//剪切
fs.rename('./folder/hello.txt','./folder/hai/hello.txt',(err)=>{
console.log(err)
})
//改名
fs.rename('./folder/summer.txt','./folder/hello.txt',(err)=>{
console.log(err)
})
2.同步:fs.rename(oldPath,newPath)
//剪切
fs.rename('./summer/hello.txt','./hello.txt')
//改名
fs.rename('./summer/hello.txt','./summer.happy.txt')
四、监听文件或文件夹中发生的操作
path:文件夹或文件的地址
callback => 回调函数(type,name)=>{} || function(type,name){}
type:触发的时间的类型(change:修改) (rename:删除||添加)
name: 触发事件文件的名称
异步:fs.watch(path,callback)
fs.writeFileSync('./summer.txt','取次花丛懒回顾',{flag:"a"})
fs.watch('./summer.txt',(type,name)=>{
console.log(type,name)
})