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

【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://www.kler.cn/a/588660.html

相关文章:

  • 项目经历-笔记
  • perl的package中“Subroutine new redefined”问题
  • (六)Spring Boot学习——spring security做基于方法的认证
  • IMX6ULL学习整理篇——UBoot的一些基础知识(1.编译流程)
  • 使用yolov8+flask实现精美登录界面+图片视频摄像头检测系统
  • 电机控制常见面试问题(十一)
  • 【CSS】一、基础选择器
  • 蓝桥杯好题推荐---激光炸弹
  • 【蓝桥杯每日一题】3.16
  • 【Agent】OpenManus 项目架构分析
  • 技术栈分享之----Swagger
  • 专题|Python贝叶斯金融数据应用实例合集:随机波动率SV模型、逻辑回归、参数更新、绩效比较BEST分析亚马逊股票、普尔指数...
  • 思维训练让你更高、更强 |【逻辑思维能力】「刷题训练笔记」假设法模式逻辑训练题(6-16)
  • JVM常用概念之即时常量
  • Bash语言的智能家居
  • airtest用法
  • 网络VLAN技术详解:原理、类型与实战配置
  • 重生之我在学Vue--第16天 Vue 3 插件开发
  • Django中的查询条件封装总结
  • 蓝桥杯——车牌(dfs全排列问题)