NodeJs开发实战(六、文件操作)

基本文件操作

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('目录删除成功');
        });
    });
});
结束语

如果您发现有不对的地方,欢迎指正。或者在学习过程中遇到任何问题,欢迎留言相互学习,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

帅帅的猪头

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值