nodejs模块fs创建文件夹和创建文件

2025-04-14 16

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方法:推荐使用,代码结构更直观,便于维护。

根据实际需求选择合适的方法即可!

Image

1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!cheeksyu@vip.qq.com
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有积分奖励和额外收入!
5.严禁将资源用于任何违法犯罪行为,不得违反国家法律,否则责任自负,一切法律责任与本站无关

源码下载