nodejs模块fs创建文件夹和创建文件
在Node.js中,fs
模块是用于处理文件系统的核心模块。无论是创建文件还是创建文件夹,都可以通过该模块实现。如何使用fs
模块来创建文件夹和文件,并提供多种解决方案。
解决方案
使用Node.js的fs
模块可以轻松完成文件和文件夹的创建任务。对于文件夹的创建,我们可以使用fs.mkdir()
或fs.promises.mkdir()
方法;对于文件的创建,可以使用fs.writeFile()
或fs.promises.writeFile()
方法。为了确保路径存在,我们还可以结合path
模块进行路径拼接。
1. 使用同步方法创建文件夹和文件
同步方法适合简单的脚本场景,它会阻塞事件循环直到操作完成。
创建文件夹
javascript
const fs = require('fs');
const path = require('path');</p>
<p>// 定义文件夹路径
const folderPath = path.join(__dirname, 'exampleFolder');</p>
<p>try {
// 同步创建文件夹
fs.mkdirSync(folderPath);
console.log('文件夹已成功创建:', folderPath);
} catch (err) {
if (err.code === 'EEXIST') {
console.log('文件夹已存在:', folderPath);
} else {
console.error('创建文件夹时出错:', err);
}
}
创建文件
javascript
const filePath = path.join(folderPath, 'exampleFile.txt');
const content = 'Hello, this is a test file!';</p>
<p>try {
// 同步写入文件内容
fs.writeFileSync(filePath, content);
console.log('文件已成功创建并写入:', filePath);
} catch (err) {
console.error('创建文件时出错:', err);
}
2. 使用异步方法创建文件夹和文件
异步方法不会阻塞事件循环,更适合高性能的应用场景。
创建文件夹
javascript
const fs = require('fs');
const path = require('path');</p>
<p>// 定义文件夹路径
const folderPath = path.join(__dirname, 'exampleFolder');</p>
<p>fs.mkdir(folderPath, { recursive: true }, (err) => {
if (err) {
if (err.code === 'EEXIST') {
console.log('文件夹已存在:', folderPath);
} else {
console.error('创建文件夹时出错:', err);
}
} else {
console.log('文件夹已成功创建:', folderPath);
}
});
创建文件
javascript
const filePath = path.join(folderPath, 'exampleFile.txt');
const content = 'Hello, this is a test file!';</p>
<p>fs.writeFile(filePath, content, (err) => {
if (err) {
console.error('创建文件时出错:', err);
} else {
console.log('文件已成功创建并写入:', filePath);
}
});
3. 使用Promise方式创建文件夹和文件
Promise方式使代码更加简洁且易于处理异步操作。
创建文件夹
javascript
const fs = require('fs').promises;
const path = require('path');</p>
<p>// 定义文件夹路径
const folderPath = path.join(__dirname, 'exampleFolder');</p>
<p>fs.mkdir(folderPath, { recursive: true })
.then(() => {
console.log('文件夹已成功创建:', folderPath);
})
.catch((err) => {
if (err.code === 'EEXIST') {
console.log('文件夹已存在:', folderPath);
} else {
console.error('创建文件夹时出错:', err);
}
});
创建文件
javascript
const filePath = path.join(folderPath, 'exampleFile.txt');
const content = 'Hello, this is a test file!';</p>
<p>fs.writeFile(filePath, content)
.then(() => {
console.log('文件已成功创建并写入:', filePath);
})
.catch((err) => {
console.error('创建文件时出错:', err);
});
4. 使用async/await方式创建文件夹和文件
async/await语法是对Promise的进一步封装,使异步代码看起来像同步代码。
创建文件夹
javascript
const fs = require('fs').promises;
const path = require('path');</p>
<p>// 定义文件夹路径
const folderPath = path.join(__dirname, 'exampleFolder');</p>
<p>async function createFolder() {
try {
await fs.mkdir(folderPath, { recursive: true });
console.log('文件夹已成功创建:', folderPath);
} catch (err) {
if (err.code === 'EEXIST') {
console.log('文件夹已存在:', folderPath);
} else {
console.error('创建文件夹时出错:', err);
}
}
}</p>
<p>createFolder();
创建文件
javascript
const filePath = path.join(folderPath, 'exampleFile.txt');
const content = 'Hello, this is a test file!';</p>
<p>async function createFile() {
try {
await fs.writeFile(filePath, content);
console.log('文件已成功创建并写入:', filePath);
} catch (err) {
console.error('创建文件时出错:', err);
}
}</p>
<p>createFile();
5.
四种不同的方式来使用Node.js的fs
模块创建文件夹和文件:同步方法、异步回调方法、Promise方法以及async/await方法。每种方法都有其适用场景:
- 同步方法:适合简单脚本或不需要高并发的场景。
- 异步回调方法:适合需要兼容旧版本Node.js的项目。
- Promise方法:适合现代JavaScript开发,代码更清晰。
- async/await方法:推荐使用,代码结构更直观,便于维护。
根据实际需求选择合适的方法即可!