基本文件操作
Node.js的文件操作API由fs(File System)内置模块提供,该模块提供的函数具有异步和同步两个版本,下面是异步对应的API
文件写入数据
//引入fs内置模块
const fs = require('fs');
//第一个参数:文件名或描述符
//第二个参数:要写入的数据,可以是String字符串或Buffer流对象
//第三个参数:回调函数只包括错误信息参数(err),在写入失败时返回
fs.writeFile('D:/test.txt', '每天进步一点', err => {
if (err) return console.log('文件写入失败');
console.log('文件写入完成')
});
文件追加数据
//引入fs内置模块
const fs = require('fs');
//第一个参数:文件名或描述符
//第二个参数:要追加的数据,可以是String字符串或Buffer流对象
//第三个参数:回调函数只包括错误信息参数(err),在写入失败时返回
fs.appendFile('D:/test.txt', '好好学习,天天向上', err => {
if (err) return console.log('文件追加失败');
console.log('文件追加完成')
});
文件读取
//引入fs内置模块
const fs = require('fs');
//第一个参数:文件绝对路径
//第二个参数:回调函数包括错误信息参数(err),读取内容(data)
fs.readFile('D:/test.txt', (err, data) => {
if (err) return console.log('文件读取失败');
console.log(data.toString());
})
文件复制
//引入fs内置模块
const fs = require('fs');
//先读取文件内容
fs.readFile('D:/test.txt', (err, data) => {
if(err) return console.log('读取文件失败');
//文件读取成功,则将内容写入第二个文件
fs.writeFile('D:/test2.txt', data, err => {
if(err) return console.log('写入文件失败');
})
console.log('文件复制成功了');
})
文件信息获取
//引入fs内置模块
const fs = require('fs');
//第一个参数:文件路径
//第二个参数:回调函数包括错误信息参数(err),文件信息对象(stats)
fs.stat('D:/test.txt', (err, stats) => {
if(err) return console.log('获取文件信息失败');
console.log(stats.isFile());//是否为文件
console.log(stats.isDirectory());//是否为目录
console.log(stats.isSymbolicLink());//是否为软链接
})
路径相关操作
//引入path内置模块
const path = require('path');
//文件路径
let filePath = 'D:/test.txt';
console.log(path.basename(filePath));//test.txt
console.log(path.dirname(filePath));//D:/
console.log(path.extname(filePath));//.txt
console.log(path.isAbsolute(filePath));//true
console.log(path.sep);//\
目录创建
//引入fs内置模块
const fs = require('fs');
//第一个参数:目录路径
//第二个参数:回调函数只包括错误信息参数(err),在创建失败时返回
fs.mkdir('D:/test', err => {
if(err) return console.log('目录创建失败');
console.log('目录创建成功');
})
目录读取
//引入fs内置模块
const fs = require('fs');
//第一个参数:文件名或描述符
//第二个参数:回调函数包括错误信息参数(err),读取文件夹下文件列表(files)
fs.readdir('D:/test', (err, files) => {
if(err) return console.log('目录读取失败');
//遍历目录下所有的文件
files.forEach(file => {
console.log(file);
})
})
删除目录和删除文件
删除目录时有一个要求,就是该目录必须为空,所以删除目录的操作还需要读取目录和删除文件操作进行支持。
//引入fs内置模块
const fs = require('fs');
//删除目录路径
let dirPath = 'D:/test/';
//使用内置模块读目录
fs.readdir(dirPath, (err,files) => {
if(err) return console.log('读取失败');
//遍历目录下文件
files.forEach(file => {
//删除文件
fs.unlink(dirPath + file, err => {
if(err) return console.log('文件删除失败');
console.log('文件删除成功');
})
});
setTimeout(() => {
fs.rmdir(dirPath, err => {
if(err) return console.log('目录删除失败');
console.log('目录删除成功');
});
});
});
结束语
如果您发现有不对的地方,欢迎指正。或者在学习过程中遇到任何问题,欢迎留言相互学习,谢谢!