目录

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

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

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