Node.js_fs文件系统(三)
-
fs.stat()
判断文件类型
isFile():判断是否是一个文件
isDirectory:判断是否是一个文件夹
const fs = require("fs"); fs.stat("./index.js",(err,data) =>{ console.log(data.isFile()); })
-
fs.mkdir()
创建目录(文件夹)
fs.mkdir(path[, options], callback)(必须要写回调,即使回调是空的)
const fs = require("fs"); const path = require("path"); fs.mkdir(path.resolve(__dirname,"./demo"),(err) => {});
-
fs.writeFile()
创建并写入文件
fs.writeFile(file, data[, options], callback)
fs.writeFile(path.resolve(__dirname,"./demo/index.txt"),"abc",(err) => {});
-
fs.readFile()
注意:直接读取信息的是buffer文件,需要将其转换为字符串
fs.readFile(path.resolve(__dirname,"./demo/index.txt"),(err,data) => { //console.log(data); //此时为buffer文件 console.log(data + "");//或者data.toString() })
-
fs.rename()
重命名文件或文件夹(oldpath , newpath)
fs.rename(path.resolve(__dirname,"./demo/index.txt"),path.resolve(__dirname,"./demo/list.txt"),(err) => {}) //index.txt文件被修改为list.txt
-
fs.readdir()
查看demo1下的所有文件夹
fs.readdir(path.resolve(__dirname,"../../demo1"),(err,list) => { console.log(list); })
-
fs.unlink()
删除文件
fs.unlink(path.resolve(__dirname,”./demo/list.txt),() =>{}) //list.txt被删除
-
fs.rmdir()
删除文件夹
fs.rmdir(path.resovle(__dirname,"./demo"),(err) =>{})
-
案例:深层遍历给定路径下的所有文件
先读取文件夹,获取文件的所有文件
对获取的文件进行遍历,用fs.stat 获得文件状态,
通过状态中的stat.isFile()或isisDirectory()判断是否是一个文件(夹),是文件直接输出文件名,不是文件就继续递归。
let fs = require("fs"); let path = require("path"); let filePath = "E:/lxc/" function myReadfile(filePath) { //根据文件路径读取文件,返回文件列表 fs.readdir(filePath, (err, files) => { if (err) { console.warn(err); return; } //遍历读取到的文件列表 files.forEach(file => { //拼接获取绝对路径,fs.stat(绝对路径,回调函数) let fPath = path.join(filePath, file); fs.stat(fPath, (err, stat) => { if (err) { console.warn('获取文件stats失败'); return; } if (stat.isFile()) { console.log(file); } else { myReadfile(fPath); } }) }) }) } myReadfile(filePath);
遍历结果:
aa1.txt
bb1.txt
新建文本文档.txt