【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