fs读取目录、文件

fs读取文件

process.cwd() 是 Node.js 中的一个方法,它返回 Node.js 进程的当前工作目录。这个工作目录通常是启动 Node.js 进程时所在的目录。

const fs = require('fs');
const path = require('path');

// 读取指定目录
const configPath = path.join(process.cwd(), 'config.json');
// const configPath = path.join(process.cwd(), 'src/config.json');
// 读取文件
const config = fs.readFileSync(configPath, 'utf-8');
console.log(config);

fs 读取目录

const fs = require('fs');
const path = require('path');

// 指定要读取的目录路径
const directoryPath = './exampleDirectory';

// 使用 fs.readdir() 读取目录
fs.readdir(directoryPath, (err, files) => {
  if (err) {
    console.error(`读取目录时发生错误: ${err}`);
    return;
  }

  // 文件数组包含了目录中的所有文件和子目录
  files.forEach(file => {
    console.log(file);
  });
});

// 异步/等待版本的读取目录
// (注意:此示例使用了 async/await,因此需要在异步函数中使用)
async function readDirectoryAsync() {
  try {
    const files = await fs.promises.readdir(directoryPath);
    files.forEach(file => {
      console.log(file);
    });
  } catch (err) {
    console.error(`异步读取目录时发生错误: ${err}`);
  }
}

// 调用异步函数
readDirectoryAsync();

fs判断是否为文件夹

const fs = require('fs');

const path = './example/folder'; // 要检查的路径

fs.stat(path, (err, stats) => {
  if (err) {
    console.error('发生错误:', err);
    return;
  }

  if (stats.isDirectory()) {
    console.log('这是一个文件夹');
  } else {
    console.log('这不是一个文件夹');
  }
});

fs 获取文件名

const fs = require('fs');
const path = require('path');

// 假设你有一个包含路径的文件名字符串
const filePath = '/example/directory/test.txt';

// 使用 path.basename 获取文件名
const fileName = path.basename(filePath);

console.log(fileName); // 输出: test.txt

获取文件扩展名

const path = require('path');

// 假设你有一个包含路径的文件名字符串
const filePath = '/example/directory/牡蛎.txt';

// 使用 path.extname 获取文件扩展名
const fileExtension = path.extname(filePath);

console.log(fileExtension); // 输出: .txt

实践:

const fs = require('fs');
const path = require('path');

// 使用 fs.readdir() 读取目录
const readdir = (directoryPath, isRoot) => fs.readdir(directoryPath, (err, files) => {
  if (err) {
    console.error(`读取目录时发生错误: ${err}`);
    return;
  }

  // 文件数组包含了目录中的所有文件和子目录
  files.forEach(file => {
    const pPath = isRoot ? path.join(process.cwd(), `${directoryPath}/${file}`) : `${directoryPath}/${file}`;
    fs.stat(pPath, (err, stats) => {
      if (err) {
        console.error('发生错误:', err);
        return;
      }
      if (stats.isDirectory()) {
        console.log('文件夹:', pPath);
        readdir(pPath);
      } else {
        const readFile = fs.readFileSync(pPath, 'utf-8');
        console.log(`------>READ FILE ${pPath} START:<------\n`, readFile, `\n------>READ FILE ${pPath} END<------\n`);
      }
    })
  });
});

readdir('./src', true);

运行脚本即可

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值