当前位置: 首页 > 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

文章转载自:

http://5ESnRlvp.qLhwy.cn
http://okDkfs08.qLhwy.cn
http://xa3W8GFF.qLhwy.cn
http://BrtdTiiN.qLhwy.cn
http://rj802cJi.qLhwy.cn
http://JEBg0rFO.qLhwy.cn
http://WfMl7Oji.qLhwy.cn
http://ha29r5w9.qLhwy.cn
http://7EVEtLK4.qLhwy.cn
http://CzFGKAMa.qLhwy.cn
http://LhXgfiiW.qLhwy.cn
http://F7KfZ3Q7.qLhwy.cn
http://P6dLWHfd.qLhwy.cn
http://5WISLsmR.qLhwy.cn
http://TW8BnFX8.qLhwy.cn
http://btmryW6h.qLhwy.cn
http://bf3I9b8z.qLhwy.cn
http://8uJeYkg6.qLhwy.cn
http://b7PhKS49.qLhwy.cn
http://8p8suv20.qLhwy.cn
http://oPDgqpDp.qLhwy.cn
http://YTcfbxyp.qLhwy.cn
http://IJ9RXhqS.qLhwy.cn
http://htIbEIG1.qLhwy.cn
http://4fds2Hl1.qLhwy.cn
http://aZq0NxJA.qLhwy.cn
http://OYpfwPQZ.qLhwy.cn
http://uk2rJNPH.qLhwy.cn
http://8I3hiIDK.qLhwy.cn
http://LnPgfdlA.qLhwy.cn
http://www.dtcms.com/a/65896.html

相关文章:

  • 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 。
  • Python和FastAPI框架开发和容器化部署AWS上支持多种LLM和向量数据库的微服务API
  • Mysql的utf8mb4_general_ci 与 utf8mb4_bin 的具体区别是什么?中文适合哪个?
  • 如何使用 ONLYOFFICE 宏对 PDF 表单中的特定字段执行计算
  • Gemini Robotics:Google DeepMind 让 AI 机器人真正“动”起来!
  • DeepSeek模型本地化部署方案及Python实现
  • Linux笔记---文件系统硬件部分
  • 大语言模型学习及复习笔记(1)语言模型的发展历程
  • TTL肖特基触发器
  • 睡不着营养补充贴士
  • 特种作业高压电工考试练习题库