最近买了点字体,但是坑爹的是,字体套在两层文件夹里,要看某个字体需要一个一个点开再返回看。非常麻烦,因此可以用nodejs把所有的otf或者ttf文件全部拿出来整合到一个文件夹里。
文件结构:
其中脚本文件与all-ziti、ziti文件夹同级。只要装了node,建一个js文件直接运行即可。
代码非常简单,记录一下,以后要用到拿来用一下:
const fs = require("fs")
var path = require("path")
var destPath = "all-ziti"
let sourceFile = ""
const FILEPATH = "ziti" // 所有字体文件
const res = fs.readdirSync(FILEPATH)
for (let fn of res) {
const path = `${FILEPATH}/${fn}` // 包含字体文件夹的父文件夹路径
const res1 = fs.readdirSync(path)
console.log("path1", path)
// 遍历2
for (let zn of res1) {
const path2 = `${FILEPATH}/${fn}/${zn}` // 字体文件夹
// console.log("path2", path2)
const res2 = fs.readdirSync(path2)
const otf = res2.filter((e) => {
return e.indexOf(".otf") >= 0 || e.indexOf(".ttf") >= 0
})[0]
sourceFile = path2 + "/" + otf // 这里需要指明具体写入的文件夹+文件名
/* 将当前otf/ttf字体文件复制到all-ziti文件夹 */
var readStream = fs.createReadStream(sourceFile)
var writeStream = fs.createWriteStream(`${destPath}/${otf}`)
readStream.pipe(writeStream)
}
}