一.fs模块对系统文件及目录进行读写操作
fs 模块提供了用于与文件系统进行交互(以类似于标准 POSIX 函数的方式)的 API。
要使用此模块:
const fs = require('fs');
1.读取文件readFile方法使用
//fs.readFile(filename,[option],callback) 方法读取文件。
const fs = require('fs');
// 设置编码格式
fs.readFile('node1.js', 'utf-8', function(err, data) {
// 读取文件失败/错误
if (err) {
throw err;
}
// 读取文件成功
console.log('utf-8: ', data.toString()); //hello Word
});
2.写入文件writeFile方法使用
//使用fs.writeFile(filename,data,[options],callback)写入内容到文件。
const fs = require('fs'); // 引入fs模块
fs.writeFile('node1.js', 'node1.js', function(err) {
if (err) {
throw err;
}
console.log('写入成功');
});
3.在这里插入代码片创建目录mkdir
//fs.mkdir(path,[mode],callback)创建目录
// 引入fs模块
const fs = require('fs');
// 当前文件目录下创建作业文件夹
fs.mkdir('作业', function(err) {
if (err) {
throw err;
}
console.log('文件夹创建成功');
});
4.读取目录readdir
const fs = require('fs');
fs.readdir('作业', function(err, files) {
if (err) {
throw err;
}
console.log(files); //作业目录下文件 [ 'n.js', 'n2.js' ]
});
5…删除空文件夹rmdir
const fs = require('fs');
//rmdir()删除的是空文件夹
fs.rmdir('作业', function(err) {
if (err) {
console.log(err);
return false;
}
console.log("删除成功");
})
6.删除文件unlink()
const fs = require('fs');
fs.unlink('node1.js', function(err) {
if (err) {
console.log(err);
return false;
}
console.log("删除成功");
}) ;
7.复制文件
// 导入 fs 文件系统模块
const fs = require('fs');
// 读取文件 dataStr文件内容
fs.readFile('text1.txt', 'utf-8', (err, dataStr) => {
if (err) return console.log('读取文件失败')
// 写入到指定的文件中去
fs.writeFile('text2.txt', dataStr, (err) => {
if (err) return console.log('写入文件失败了')
console.log('复制文件成功')
})
})
8.追加文件
// 导入 fs 文件系统模块
const fs = require('fs');
//fs.appendFile(path, data[, options], callback)
// 参数1: 要追加的文件路径
// 参数2: 要追加的数据内容
// 参数3: 【可选参数,一般省略】追加时候的编码格式,默认已经是 utf-8 了
// 参数4: 追加完毕之后的回调函数
fs.appendFile('text2.txt', '\n world', (err) => {
if (err) return console.log('追加文件失败:' + err.message)
console.log('追加文件成功')
})
9.读取指定目录中所有文件的名称
// 导入 fs 文件系统模块
const fs = require('fs');
//fs.readdir(path[, options], callback)
// 读取目录,并得到目录下所有的文件和文件夹的名称
fs.readdir(__dirname, (err, filenames) => {
if (err) throw err;
console.log(filenames) //[ 'node1.js', 'node2.js', 'text1.txt', 'text2.txt' ]
})
二.path模块对系统文件路径操作
1.路径的拼接
//导入path路径系统模块
// __dirname 表示的是一层目录, 当前这个文件所在的目录
//__filename 表示一个文件的路径,表示当前这个文件的完整路径
const path = require('path');
const abspath = path.join(__dirname, 'text3.txt');
console.log(abspath); //E:\前端课程\node\2020-8-7\node\text3.txt
2.获取路径最后部分
//导入path路径系统模块
const path = require('path');
//path.basename(path[, ext])
path.basename('E:\前端课程\node\2020-8-7\node\text3.txt');
// 返回: 'text3.txt'
path.basename('E:\前端课程\node\2020-8-7\node\text3.txt', '.txt');
// 返回: 'text3'
3.路径的目录名
//path.dirname(path)
path.dirname('E:\前端课程\node\2020-8-7\node\text3.txt');
// 返回: 'E:\前端课程\node\2020-8-7\node'
4.路径的扩展名
//path.extname(path)
//返回 path 的扩展名,即从 path 的最后一部分中的最后一个 .(句号)字符到字符串结束。 如果 path 的最后一部分没有 . 或 path 的文件名(参考 path.basename())的第一个字符是 .,则返回一个空字符串。
path.extname('index.html');
// 返回: '.html'
path.extname('index.coffee.md');
// 返回: '.md'
path.extname('index.');
// 返回: '.'
path.extname('index');
// 返回: ''
path.extname('.index');
// 返回: ''