Express框架:fs操作目录与文件的一些方法
2022-03-03 本文已影响0人
听书先生
1.1、读取文件/文件夹的信息
-
1.1.1、异步读取
语法结构
fs.stat('文件名称', function(error, stats) {})
stats是文件的信息对象,包含了常用个文件信息
-
1.1.2、同步读取
语法结构
const stat = fs.statSync('文件名称')
fs.stat('./new-data.txt', (error, stats) => {
if(error) {
throw error;
} else {
console.log(stats);
}
})
- 1.1.3Stats对象信息:
Stats {
dev: 3963079969,
mode: 33206,
nlink: 1,
uid: 0,
gid: 0,
rdev: 0,
blksize: 4096,
ino: 33495522228571390,
size: 17, // 文件大小,字节数
blocks: 8,
atimeMs: 1646312863637.542,
mtimeMs: 1646145335936.3354,
ctimeMs: 1646317420347.023,
birthtimeMs: 1646142742490.054,
atime: 2022-03-03T13:07:43.638Z, // 上一次文件访问时间
mtime: 2022-03-01T14:35:35.936Z, // 文件内容修改时间
ctime: 2022-03-03T14:23:40.347Z, // 文件状态改变时间
birthtime: 2022-03-01T13:52:22.490Z // 第一次创建时间
}
图1.png
1.2、获取文件信息对象类型的方法
语法格式:
isFile() 是否是文件,返回布尔值
isDirectory() 是否是文件夹,返回布尔值
fs.stat('./data.txt', function(error, stats) {
if(error) {
new Error(error);
return;
}
console.log(stats.isFile()); //判断 ./data.txt是否是文件
console.log(stats.isDirectory()); //判断 ./data.txt是否是文件夹
})
1.3、修改文件名称
语法格式:
fs.rename("文件路径", '新的文件名称', error => {})
fs.rename("./data.txt", 'new-data.txt', error => {
if(error) {
new Error(error);
return;
}
console.log('文件名称已修改...')
})
1.4、删除某个文件
语法格式:
fs.unlink('文件路径', 回调函数)
fs.unlink('./test.txt', (error) => {
if(error) {
throw error;
} else {
console.log('文件删除成功...');
}
})
1.5、新增目录结构
语法格式:
fs.mkdir('文件路径', 回调函数)
fs.mkdir('../images', error => {
if(error) {
throw error;
} else {
console.log('文件目录创建成功...')
}
})
1.6、读取目录中的文件列表
语法结构:
fs.readdir('文件路径', 回调函数)
fs.readdir('./public', (error, list) => {
if(error) {
throw error;
} else {
console.log(list);
}
})
i图2.png
打印到的是一个文件目录下的文件列表,以数组的方式呈现。
1.7、删除空文件夹
语法结构:
fs.rmdir('文件夹路径', (error) => {})
fs.rmdir('../images', (error) => {
if(error) {
throw error;
} else {
console.log('删除成功...')
}
})
需要注意的是:只能删除空的文件夹
1.8、监听文件是否改变
watch
:监听,文件夹内所有文件的变化
watchFile
:是监听一个文件的变化
fs.writeFile('./test.txt', '12345', (error) => {
if(error) {
throw error;
} else {
console.log('新增成功...')
}
})
fs.watch('./', {
recursive: false, // 默认为false 是否递归
}, (changeType, fileName) => {
console.log(changeType); // 监听文件目录下文件变化,是新增还是删除
console.log(fileName); // 修改的文件名字
})
fs.watchFile('./new-data.txt', (c, p) => {
console.log(c); // 监听文件改变之前的stats
console.log(p); // 监听文件改变之后(即当前文件)的stats
})
图3.png