文件
- fs.readFile 读
- fs.writeFile 写
- fs.appendFile 追加
- fs.copyFile 复制
- fs.unlink 删除
- fs.stat 文件信息
const fs = require('fs')
const util = require('util')
const readFileAsync = util.promisify(fs.readFile)
async function testRead() {
const res = await readFileAsync('1.txt')
console.log(res.toString())
}
function testWriteFile() {
fs.writeFileSync('1.txt', 'aaaaaa')
}
function testAppendFile() {
fs.appendFileSync('1.txt', 'bbbb')
}
function testCopyFile() {
fs.copyFileSync('1.txt', '2.txt')
}
function testUnlink() {
fs.unlinkSync('2.txt')
}
function testStat() {
const res = fs.statSync('1.txt')
console.log(res)
}
文件夹
- fs.mkdir 创建文件夹
- fs.readdir 读取文件夹内容
- fs.rmdir 删除文件夹(要求文件夹存在且文件夹目录为空)
function testMkdir() {
fs.mkdirSync('test')
}
function testReaddir() {
const res = fs.readdirSync('test')
console.log(res)
}
function testRmdir() {
fs.rmdirSync('test/test12')
}
应用
递归创建文件夹
const fsPromises = require('fs/promises')
const path = require('path')
async function mkPath(dirPath) {
let parts = dirPath.split(path.sep)
for(let i = 1; i <= parts.length; i++) {
let current = parts.slice(0, i).join(path.sep)
try {
await fsPromises.access(current)
} catch (err) {
await fsPromises.mkdir(current)
}
}
}
mkPath(path.resolve("a", "b", "c"))
复制文件夹
async function copy(src, dest) {
const stat = fs.statSync(src)
if (stat.isDirectory()) {
copyDir(src, dest)
} else {
fs.copyFileSync(src, dest)
}
}
function copyDir(srcDir, destDir) {
fs.mkdirSync(destDir, { recursive: true })
for (const file of fs.readdirSync(srcDir)) {
const srcFile = path.resolve(srcDir, file)
const destFile = path.resolve(destDir, file)
copy(srcFile, destFile)
}
}
copy('test', 'test_copy'