当前位置: 首页 > news >正文

【Node.js入门笔记5---fs文件信息与元数据】

Node.js入门笔记5

  • Node.js---fs 文件信息与元数据
  • 一、文件信息与元数据
    • 1.fs.stat() / fs.statSync():获取文件或目录的详细信息(大小、类型、修改时间等)。
      • 异步
      • 同步
    • 2.fs.access():检查文件是否存在或是否有访问权限。
    • 3.fs.symlink():创建符号链接。
    • 4. fs.readlink():读取符号链接指向的路径。

Node.js—fs 文件信息与元数据

一、文件信息与元数据

1.fs.stat() / fs.statSync():获取文件或目录的详细信息(大小、类型、修改时间等)。

语法格式:

fs.stat(path[, options], callback)

参数解读:
path: 文件路径
options: 选项对象,可选
callback: 回调函数,参数为 (err, stats)
stats: fs.Stats 对象,包含文件状态信息
stats.size: 文件大小(字节)
stats.birthtime: 创建时间
stats.mtime: 修改时间
stats.isFile(): 是否为文件
stats.isDirectory(): 是否为目录

异步


const fs = require('fs');

const filePath = 'example.txt';

fs.stat(filePath, (err, stats) => {
    if (err) {
        console.error('获取文件状态信息时出错:', err);
        return;
    }
    console.log('文件大小(字节):', stats.size);
    console.log('创建时间:', stats.birthtime);
    console.log('修改时间:', stats.mtime);
    console.log('是否为文件:', stats.isFile());
    console.log('是否为目录:', stats.isDirectory());
});

写完代码后,需要在terminal控制台输入指令:node 【 js文件的路径】

node C:\Users\Administrator\Desktop\learning\stat.js

同步

// 创建多个目录
const fs = require('fs');

const filePath = 'example.txt';

try {
    const stats = fs.statSync(filePath);
    console.log('文件大小(字节):', stats.size);
    console.log('创建时间:', stats.birthtime);
    console.log('修改时间:', stats.mtime);
    console.log('是否为文件:', stats.isFile());
    console.log('是否为目录:', stats.isDirectory());
} catch (err) {
    console.error('获取文件状态信息时出错:', err);
}

写完代码后,需要在terminal控制台输入指令:node 【 js文件的路径】

node C:\Users\Administrator\Desktop\learning\statSync.js

2.fs.access():检查文件是否存在或是否有访问权限。

语法格式

fs.access(path[, mode], callback)

参数解读:
path:必选参数,文件路径
mode:可选参数,文件的操作权限callback:回调函数,传递一个参数,参数为可能的异常信息,如果没有异常信息,则为null
fs.access()方法用于检查指定的文件是否存在。如果文件存在,或者权限符合要求,回调函数将会被调用,否则将会抛出异常。
fs.access()方法是fs.stat()方法的简化版,用于测试指定路径的用户权限。

异步

const fs = require('fs');

const filePath = 'example.txt';
// 参数fs.constants.F_OK用于检查文件是否存在
// 参数fs.constants.R_OK用于检查文件是否可读
// 参数fs.constants.W_OK用于检查文件是否可写
// 参数fs.constants.X_OK用于检查文件是否可执行
fs.access(filePath, fs.constants.R_OK | fs.constants.W_OK, (err) => {
    if (err) {
        console.error('文件不可读或不可写:', err);
    } else {
        console.log('文件可读且可写');
    }
});

写完代码后,需要在terminal控制台输入指令:node 【 js文件的路径】

node C:\Users\Administrator\Desktop\access.js

同步

const fs = require('fs');

const filePath = 'example.txt';

try {
    fs.accessSync(filePath, fs.constants.R_OK | fs.constants.W_OK);
    console.log('文件可读且可写');
} catch (err) {
    console.error('文件不可读或不可写:', err);
}

写完代码后,需要在terminal控制台输入指令:node 【 js文件的路径】

node C:\Users\Administrator\Desktop\access.js

3.fs.symlink():创建符号链接。

语法格式:

fs.symlink(target, path[, type], callback)

参数解读:
target:必选参数,表示文件的路径
path:必选参数,表示链接文件的路径
type:可选参数,表示链接文件的类型,它会影响底层操作系统的文件系统调用
callback:回调函数,回调函数只包含一个参数err

异步

// 1.导入fs模块
const fs = require('fs');

const target = 'targetFile.txt';
const linkPath = 'symbolicLink';

fs.symlink(target, linkPath, (err) => {
    if (err) {
        console.error('创建符号链接时出错:', err);
    } else {
        console.log('符号链接创建成功');
    }
});

写完代码后,需要在terminal控制台输入指令:node 【 js文件的路径】

node C:\Users\Administrator\Desktop\learning\symlink.js

同步

const fs = require('fs');

const target = 'targetFile.txt';
const linkPath = 'symbolicLink';

try {
    fs.symlinkSync(target, linkPath);
    console.log('符号链接创建成功');
} catch (err) {
    console.error('创建符号链接时出错:', err);
}

写完代码后,需要在terminal控制台输入指令:node 【 js文件的路径】

node C:\Users\Administrator\Desktop\learning\symlink.js

4. fs.readlink():读取符号链接指向的路径。

语法格式:

fs.readlink(path[, options], callback)

参数解读:
target:必选参数,表示文件的路径
path:必选参数,表示链接文件的路径
type:可选参数,表示链接文件的类型,它会影响底层操作系统的文件系统调用
callback:回调函数,回调函数只包含一个参数err

异步

const fs = require('fs');

const symlinkPath = 'symbolicLink';

fs.readlink(symlinkPath, (err, linkString) => {
    if (err) {
        console.error('读取符号链接时出错:', err);
        return;
    }
    console.log('符号链接指向的路径:', linkString);
});

写完代码后,需要在terminal控制台输入指令:node 【 js文件的路径】

node C:\Users\Administrator\Desktop\readlink.js

同步

const fs = require('fs');

const symlinkPath = 'symbolicLink';

try {
    const linkString = fs.readlinkSync(symlinkPath);
    console.log('符号链接指向的路径:', linkString);
} catch (err) {
    console.error('读取符号链接时出错:', err);
}

写完代码后,需要在terminal控制台输入指令:node 【 js文件的路径】

node C:\Users\Administrator\Desktop\readlink.js

相关文章:

  • Masked Autoencoders Are Scalable Vision Learners——论文学习
  • 2025年人工智能应用全景解析:从医疗革命到产业重构的深度实践
  • coding ability 展开第三幕(滑动指针——基础篇)超详细!!!!
  • 【农业大数据处理与应用】实验四 多元回归与随机森林模型在植被病虫害监测中的对比分析
  • 浅谈时钟启动和Systemlnit函数
  • 管理学习状态
  • 精准车型识别:视觉分析技术的力量
  • 强化学习(赵世钰版)-学习笔记(7.时序差分学习)
  • 在 Windows 上快速部署 OpenManus:从安装到运行
  • (七)使用X99主板搭配双XEON E5-2660 V4或同系列CPU+NVIDIA P106-100部署Deepseek的可行性
  • 简单5位验证码+快捷键的使用
  • 配置普通链接二维码规则 校验文件检查失败
  • 将后缀为GGUF 模型,运行在Ollama
  • 如何自己做奶茶,从此告别奶茶店
  • 基于Spring Boot的小区疫情购物系统的设计与实现(LW+源码+讲解)
  • 【从零开始学习计算机科学】数据库系统(三)关系数据库设计
  • 2024年第十五届蓝桥杯软件C/C++大学A组——五子棋对弈
  • Pandas真实案例进阶:从数据清洗到高性能分析的完整指南
  • 数据结构与算法——哈希表,数组加强哈希表,双链表加强哈希表
  • 【算法day9】回文数-给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。
  • 淄博网站建设哪家专业/太原百度搜索排名优化
  • html视频网站模板/万网域名续费
  • 网站设计论文html/如何去除痘痘有效果
  • 如何跳过网站会员/搜索关键词排名优化服务
  • 网站开发手机编译器/沈阳seo排名优化软件
  • 东莞专业网站建设公司/最近新闻