内容大纲
fs模块
fs文件系统模块,这是一个非常重要的模块,对文件的操作都基于它,该模块的所有方法都有同步和异步两种方式。对于异步的回调方法,第一次参数都是error对象,error first
const fs=require('fs')
属性
文件(夹)是否存在
fs.access(filepath,exist=>{})
fs.access(filepath,error=>{
...
})
统计信息
fs.stat(path,(error,stats)=>{})
- stats.isFile() : 是否是文件
- stats.isDirectory(): 是否是文件夹
- stats.mod: 获取权限
- stats.size: 字节长度
- stats.ctime:State Change Time,属性或内容上次被修改的时间 (设置缓存的响应头可能会用到)
- stats.mtime:Modified time,档案的内容上次被修改的时间 (设置缓存的响应头可能会用到)
- stats.atime:Access time,上次被读取的时间
文件
创建
fs没有直接创建文件的方法。正常逻辑下,写入文件前需要确认文件是否存在,如果不存在需要创建后才能写入,而fs模块不需要这么做,在有写入功能的几个api中,如果目标文件不存在,node为自动创建该文件然后写入。常用的几个写入功能的api有:
- fs.appendFile()
- fs.writeFile()
- fs.createWriteStream()
删除
上图中的第二部分是文件或者目录的连接(link)数(ln(即link) 的功能是为某一个文件在另外一个位置建立一个同步的链接。有两种链接方式,一种是硬链接(hard link),另一种是符号链接(symbolic link),又称软链接。硬链接和原有文件是存储在同一物理地址的两个不同的名字,因此硬链接是相互的;符号链接的内容只是一个所链接文件的文件名,在使用ls –l时,符号链接的第一项的第一位为“l”。)。目标文件可能是文件实体也可能是一个link,删除时只需要删除link即可,当最后一个link被移除时,实体文件也被删除了。
fs.unlink()
fs.unlink(filepath,error=>{
...
})
复制
fs.copyFile(src, dest[, flags], callback)
重命名
fs.rename(oldPath, newPath, callback)
可实现文件的重命名和移动