文章首发于:clawhub.club


fs(文件系统)

node提供的fs包可以操作文件和文件夹,所有文件系统操作都具有同步和异步的形式。在繁忙的进程中,强烈建议使用这些调用的异步版本。 同步的版本将阻塞整个进程,直到它们完成(停止所有连接)。

获取模块

1
const fs = require('fs');

readdir

给出一个目录filepath,可以在回调函数中获取到文件信息。

1
fs.readdir(path[, options], callback)

回调有两个参数 (err, files),其中 files 是目录中的文件名的数组(不包括 ‘.’ 和 ‘..’)

statSync

可以获取文件的状态信息,这是一个同步方法,有返回值.

1
fs.statSync(path[, options])

stats.isFile()

判断当前文件是不是个文件

path(路径)

path 模块提供用于处理文件路径和目录路径的实用工具。

获取模块

1
const path = require('path')

####path.extname(path)
返回 path 的扩展名,从最后一次出现 .(句点)字符到 path 最后一部分的字符串结束。 如果在 path 的最后一部分中没有 . ,或者如果 path 的基本名称(参阅 path.basename())的第一个字符是 .,则返回空字符串。

path.join([…paths])

使用平台特定的分隔符作为定界符将所有给定的 path 片段连接在一起,然后规范化生成的路径。零长度的 path 片段会被忽略。 如果连接的路径字符串是零长度的字符串,则返回 ‘.’,表示当前工作目录。

综合例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//列出文件夹内的文件
listingFile(filepath) {
console.log('filepath:' + filepath)
const fs = require('fs')
const path = require('path')
fs.readdir(filepath, (err, file) => {
console.log('file:' + file)
if (err) {
return alert(err)
}
for (const filename of file) {
const stat = fs.statSync(path.join(filepath, filename))
if (stat.isFile()) {
console.log('filename: ' + filename)
console.log(stat)
}
}
this.isLoading = false
})
}