NodeJS
打开某个文件夹下所有文件
js
const cp = require('child_process')
const fs = require('fs')
const path = require('path')
let dirName = path.resolve(__dirname, '../') // 要打开的文件夹
function openFile(dirName) {
const files = fs.readdirSync(dirName)
for (let file of files) {
const filePath = path.join(dirName, file)
const fileStat = fs.statSync(filePath)
if (fileStat.isDirectory()) {
openFile(filePath)
} else {
if (filePath.endsWith('.html')) // 打开所有 html 文件
cp.exec(`start ${filePath}`);
}
}
}
openFile(dirName)
const cp = require('child_process')
const fs = require('fs')
const path = require('path')
let dirName = path.resolve(__dirname, '../') // 要打开的文件夹
function openFile(dirName) {
const files = fs.readdirSync(dirName)
for (let file of files) {
const filePath = path.join(dirName, file)
const fileStat = fs.statSync(filePath)
if (fileStat.isDirectory()) {
openFile(filePath)
} else {
if (filePath.endsWith('.html')) // 打开所有 html 文件
cp.exec(`start ${filePath}`);
}
}
}
openFile(dirName)
读取文件(异步)
js
const fs = require('fs');
const path = require('path');
const targetPath = path.join(__dirname, './t.js')
fs.readFile(targetPath, 'utf8', (err, data) => {
console.log('datra', data);
})
const fs = require('fs');
const path = require('path');
const targetPath = path.join(__dirname, './t.js')
fs.readFile(targetPath, 'utf8', (err, data) => {
console.log('datra', data);
})
读取文件(同步)
js
const fs = require('fs');
const path = require('path');
const targetPath = path.join(__dirname, './t.js')
const data = fs.readFileSync(targetPath)
console.log(data.toString()); // 将 buffer 数据转为原始内容
const fs = require('fs');
const path = require('path');
const targetPath = path.join(__dirname, './t.js')
const data = fs.readFileSync(targetPath)
console.log(data.toString()); // 将 buffer 数据转为原始内容
读取文件信息(同步)
js
const fs = require('fs');
const path = require('path');
const targetPath = path.join(__dirname, './t.js')
const stats = fs.statSync(targetPath)
console.log('文件的大小:', stats.size);
console.log('是否是文件:', stats.isFile());
console.log('是否是目录(文件夹):', stats.isDirectory());
const fs = require('fs');
const path = require('path');
const targetPath = path.join(__dirname, './t.js')
const stats = fs.statSync(targetPath)
console.log('文件的大小:', stats.size);
console.log('是否是文件:', stats.isFile());
console.log('是否是目录(文件夹):', stats.isDirectory());
写文件(异步)
js
const fs = require('fs');
const path = require('path');
const targetPath = path.join(__dirname, './t.js')
fs.writeFile(targetPath, '我是写入的内容', (err) => {
if (err) {
throw err
}
console.log('写入成功');
})
const fs = require('fs');
const path = require('path');
const targetPath = path.join(__dirname, './t.js')
fs.writeFile(targetPath, '我是写入的内容', (err) => {
if (err) {
throw err
}
console.log('写入成功');
})
写文件(同步)
js
const fs = require('fs');
const path = require('path');
const targetPath = path.join(__dirname, './t.js')
fs.writeFileSync(targetPath, '内容')
const fs = require('fs');
const path = require('path');
const targetPath = path.join(__dirname, './t.js')
fs.writeFileSync(targetPath, '内容')
先读取再写入
js
const fs = require('fs');
const path = require('path');
const targetPath = path.join(__dirname, './t.js')
fs.readFile(targetPath, (err, data) => {
if (err) { throw err}
const resData = data
fs.writeFile('./readme.md', resData, (err) => {
if (err) { throw err}
console.log('写入成功');
})
})
const fs = require('fs');
const path = require('path');
const targetPath = path.join(__dirname, './t.js')
fs.readFile(targetPath, (err, data) => {
if (err) { throw err}
const resData = data
fs.writeFile('./readme.md', resData, (err) => {
if (err) { throw err}
console.log('写入成功');
})
})
删除文件
js
const fs = require('fs');
const path = require('path');
const targetPath = path.join(__dirname, './t.js')
fs.unlink('./readme.md', (err) => {
if (err) { throw err }
console.log('删除成功');
})
const fs = require('fs');
const path = require('path');
const targetPath = path.join(__dirname, './t.js')
fs.unlink('./readme.md', (err) => {
if (err) { throw err }
console.log('删除成功');
})
读取某个文件夹中的所有文件
js
const fs = require('fs');
const path = require('path');
const targetPath = path.join(__dirname, './t.js')
fs.readdir('./test', (err, files) => {
if (err) { throw err }
console.log('files',files); // 返回一个数组,数组里的每一项为这个文件夹下的所有文件的文件名
})
const fs = require('fs');
const path = require('path');
const targetPath = path.join(__dirname, './t.js')
fs.readdir('./test', (err, files) => {
if (err) { throw err }
console.log('files',files); // 返回一个数组,数组里的每一项为这个文件夹下的所有文件的文件名
})
创建文件夹 & 删除空文件夹
js
const fs = require('fs');
const path = require('path');
const targetPath = path.join(__dirname, './t.js')
fs.mkdir('./mydir', (err) => {
if (err) { throw err }
console.log('创建成功');
})
fs.rmdir('./mydir', (err) => {
if (err) { throw err }
console.log('删除成功');
})
const fs = require('fs');
const path = require('path');
const targetPath = path.join(__dirname, './t.js')
fs.mkdir('./mydir', (err) => {
if (err) { throw err }
console.log('创建成功');
})
fs.rmdir('./mydir', (err) => {
if (err) { throw err }
console.log('删除成功');
})
递归删除某文件夹下的所有文件
js
const fs = require('fs');
const path = require('path');
const targetPath = path.join(__dirname, './t.js')
function delFile(dirName) {
// 获取该目录下的所有文件
const files = fs.readdirSync(dirName)
for (let file of files) {
// 获取每个文件的路径
let filePath = path.join(dirName, file)
// 读取每个文件的信息
let fileStat = fs.statSync(filePath)
if (fileStat.isFile()) {
fs.unlinkSync(filePath)
} else {
delFile(filePath)
}
}
}
const fs = require('fs');
const path = require('path');
const targetPath = path.join(__dirname, './t.js')
function delFile(dirName) {
// 获取该目录下的所有文件
const files = fs.readdirSync(dirName)
for (let file of files) {
// 获取每个文件的路径
let filePath = path.join(dirName, file)
// 读取每个文件的信息
let fileStat = fs.statSync(filePath)
if (fileStat.isFile()) {
fs.unlinkSync(filePath)
} else {
delFile(filePath)
}
}
}
递归删除各个空文件夹
js
const fs = require('fs');
const path = require('path');
const targetPath = path.join(__dirname, './t.js')
function isEmptyDir(fPath) {
const fStat = fs.readdirSync(fPath)
return fStat.length === 0
}
function delFile(dirName) {
// 获取该目录下的所有文件
const files = fs.readdirSync(dirName)
for (let file of files) {
const filePath = path.join(dirName, file)
const fileStat = fs.statSync(filePath)
if (fileStat.isDirectory()) {
if (isEmptyDir(filePath)) {
fs.rmdirSync(filePath)
} else {
delFile(filePath)
}
}
}
}
const fs = require('fs');
const path = require('path');
const targetPath = path.join(__dirname, './t.js')
function isEmptyDir(fPath) {
const fStat = fs.readdirSync(fPath)
return fStat.length === 0
}
function delFile(dirName) {
// 获取该目录下的所有文件
const files = fs.readdirSync(dirName)
for (let file of files) {
const filePath = path.join(dirName, file)
const fileStat = fs.statSync(filePath)
if (fileStat.isDirectory()) {
if (isEmptyDir(filePath)) {
fs.rmdirSync(filePath)
} else {
delFile(filePath)
}
}
}
}
复制文件(如果文件存在则复制失败)
js
const fs = require('fs');
const path = require('path');
const targetPath = path.join(__dirname, './t.js')
fs.copyFile('./t.js', './b.js', fs.constants.COPYFILE_EXCL, (err) => {
if (err) { throw err }
console.log('copy success!');
})
const fs = require('fs');
const path = require('path');
const targetPath = path.join(__dirname, './t.js')
fs.copyFile('./t.js', './b.js', fs.constants.COPYFILE_EXCL, (err) => {
if (err) { throw err }
console.log('copy success!');
})
在文件指定行插入内容
js
const fs = require('fs');
const path = require('path');
const targetPath = path.join(__dirname, './t.js')
const data = fs.readFileSync('./b.js', 'utf8').split('\n')
data.splice(4, 0, `内容7\r`) // 第五行插入
fs.writeFileSync('./b.js', data.join('\n'),'utf-8')
console.log('data', data);
const fs = require('fs');
const path = require('path');
const targetPath = path.join(__dirname, './t.js')
const data = fs.readFileSync('./b.js', 'utf8').split('\n')
data.splice(4, 0, `内容7\r`) // 第五行插入
fs.writeFileSync('./b.js', data.join('\n'),'utf-8')
console.log('data', data);