fs
(File System)模块是 Node.js 的核心模块之一,用于处理文件系统的操作,包括文件的读取、写入、删除、重命名等。它提供了同步和异步两种操作方式,适用于不同的场景。
文件系统是操作系统用于管理文件和目录的一种机制。Node.js 通过 fs
模块提供了对文件系统的访问能力。
async/await
处理结果。path
模块处理路径相关问题。fs
模块提供了对文件系统的操作接口,包括:
fs
模块在不同操作系统上表现一致,提供了跨平台的文件操作能力。fs
模块const fs = require('fs');
fs.readFile('example.txt', 'utf8', (err, data) => {
if (err) {
console.error('Failed to read file:', err);
} else {
console.log('File content:', data);
}
});
try {
const data = fs.readFileSync('example.txt', 'utf8');
console.log('File content:', data);
} catch (err) {
console.error('Failed to read file:', err);
}
fs.writeFile('example.txt', 'Hello, world!', 'utf8', (err) => {
if (err) {
console.error('Failed to write file:', err);
} else {
console.log('File written successfully');
}
});
try {
fs.writeFileSync('example.txt', 'Hello, world!', 'utf8');
console.log('File written successfully');
} catch (err) {
console.error('Failed to write file:', err);
}
fs.appendFile('example.txt', '\nNew content', 'utf8', (err) => {
if (err) {
console.error('Failed to append file:', err);
} else {
console.log('Content appended successfully');
}
});
try {
fs.appendFileSync('example.txt', '\nNew content', 'utf8');
console.log('Content appended successfully');
} catch (err) {
console.error('Failed to append file:', err);
}
fs.unlink('example.txt', (err) => {
if (err) {
console.error('Failed to delete file:', err);
} else {
console.log('File deleted successfully');
}
});
try {
fs.unlinkSync('example.txt');
console.log('File deleted successfully');
} catch (err) {
console.error('Failed to delete file:', err);
}
fs.rename('old.txt', 'new.txt', (err) => {
if (err) {
console.error('Failed to rename file:', err);
} else {
console.log('File renamed successfully');
}
});
try {
fs.renameSync('old.txt', 'new.txt');
console.log('File renamed successfully');
} catch (err) {
console.error('Failed to rename file:', err);
}
fs.mkdir('newDir', (err) => {
if (err) {
console.error('Failed to create directory:', err);
} else {
console.log('Directory created successfully');
}
});
fs.rmdir('newDir', (err) => {
if (err) {
console.error('Failed to delete directory:', err);
} else {
console.log('Directory deleted successfully');
}
});
fs.stat('example.txt', (err, stats) => {
if (err) {
console.error('Failed to get file stats:', err);
} else {
console.log('File size:', stats.size);
console.log('Is file?', stats.isFile());
console.log('Is directory?', stats.isDirectory());
}
});
以下是一个读取目录下所有文件的示例:
const fs = require('fs');
const path = require('path');
const listFiles = (dir) => {
fs.readdir(dir, (err, files) => {
if (err) {
console.error('Failed to read directory:', err);
} else {
files.forEach((file) => {
const filePath = path.join(dir, file);
fs.stat(filePath, (err, stats) => {
if (err) {
console.error('Failed to get file stats:', err);
} else {
if (stats.isFile()) {
console.log('File:', filePath);
} else if (stats.isDirectory()) {
listFiles(filePath); // 递归读取子目录
}
}
});
});
}
});
};
listFiles('./');
fs
模块 是 Node.js 中处理文件系统的核心工具。通过合理使用 fs
模块,可以高效地处理文件系统操作,满足各种应用需求。