📅  最后修改于: 2023-12-03 15:33:08.997000             🧑  作者: Mango
Node.js中的fs
模块提供了许多有用的方法来操作文件系统。其中,fs.realpathSync()
是一个用于返回一个文件的确切路径的同步方法。
fs.realpathSync(path[, options])
path
:字符串,必需,指定要获取其实际路径的文件路径。options
:对象,可选,包含以下属性:encoding
:字符串,可选,指定返回的真实路径的编码方式。默认为'utf8'
。cache
:布尔值,可选,指定是否使用缓存来存储文件的真实路径。默认为true
。函数返回一个字符串,表示指定的路径的真实路径。
const fs = require('fs');
const path = require('path');
const filePath = './temp/a.txt';
// 以默认编码方式获取文件的真实路径
const realPath = fs.realpathSync(filePath);
console.log(realPath); // 输出 'C:\Projects\temp\a.txt'
// 指定编码方式获取文件的真实路径
const realPath2 = fs.realpathSync(filePath, { encoding: 'latin1' });
console.log(realPath2); // 输出 'C:\Projects\temp\a.txt'
// 禁用缓存获取文件的真实路径
fs.realpathSync.cache = false;
const realPath3 = fs.realpathSync(filePath);
console.log(realPath3); // 输出 'C:\Projects\temp\a.txt'
fs.realpathSync()
方法在获取文件的真实路径时会把相对路径转换为绝对路径,如果传入的路径是绝对路径,则直接返回其真实路径。\
)或正斜杠(/
)作为路径分隔符。但是在Node.js中,建议使用正斜杠作为路径分隔符,这样可以在不同操作系统下保持代码的可移植性。fs.realpathSync()
方法在第一次获取文件的真实路径后会将其缓存下来,下次再通过相同的路径获取时就会直接返回缓存中的结果。如果文件的真实路径发生了变化,就需要清空缓存才能获取最新的真实路径。