node入门基础之文件操作

const fs = require("fs");
const fsExtra = require("fs-extra");
const path = require("path");

// 写入文件
const writeFile = (filepath, content) => {
  fs.writeFile(filepath, content, (err) => {
    if (err) {
      console.error(err);
      return;
    }
  });
};
// 写入文件只执行一次,多次执行会被覆盖
writeFile("../assets/test.txt", "node.js写入文件数据1\n");

// 追加文件内容
const appFile = (filepath, content) => {
  fs.appendFile(filepath, content, (err) => {
    if (err) {
      return console.error(err);
    }
  });
};
// 可执行多次,数据会被连续追加
appFile("../assets/test.txt", "node.js追加文件数据1\n");
appFile("../assets/test.txt", "node.js追加文件数据2\n");

// 文件内容读取
const readFile = async (filepath) => {
  const content = await fs.promises
    .readFile(filepath, "utf8")
    .catch((err) => console.error("failed to read file", err));
  return content;
};

readFile("../assets/test.txt").then((content) => {
  console.log("content=>", content);
});

// 获取文件的mate信息 文件大小。。。。
const getFileInfo = async (filepath) => {
  const stat = await fs.promises.stat(filepath).catch((err) => {
    console.log("failed to read file", err);
  });
  return stat;
};

getFileInfo("../assets/test.txt").then((stat) => {
  console.log("file size =" + stat.size);
  console.log("Is a file", stat.isFile());
});

// 目录浏览
const listFiles = async (folderpath) => {
  const fileList = await fs.promises.readdir(folderpath).catch((err) => {
    console.error("failed to read dir", err);
  });
  return fileList;
};

listFiles("../assets").then((fileList) => {
  console.log(JSON.stringify(fileList, null, "  "));
});

// 复制文件目录
const copyFolder = async (folderpathSrc, folderpathDest) => {
  await fsExtra.copy(folderpathSrc, folderpathDest).catch((err) => {
    console.error("failed to copy dir", err);
  });
};

copyFolder("../assets", "../assets-bak");

// 删除目录
const removeFolder = async (folderpath) => {
  await fsExtra.remove(folderpath).catch((err) => {
    console.log("failed to remove dir", err);
  });
};

removeFolder("../assets-bak");

// 路径解析
const parsePath = (filepath) => {
  return {
    dirname: path.dirname(filepath), // 上级目录
    basename: path.basename(filepath), // 文件名
    extname: path.extname(filepath), // 后缀
  };
};

const pathObj = parsePath("/user/larry/test.txt");
console.log(JSON.stringify(pathObj, null, "  "));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值