📜  Node.js fs.realpathSync() 方法(1)

📅  最后修改于: 2023-12-03 15:33:08.997000             🧑  作者: Mango

Node.js fs.realpathSync() 方法

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'
注意事项
  1. fs.realpathSync()方法在获取文件的真实路径时会把相对路径转换为绝对路径,如果传入的路径是绝对路径,则直接返回其真实路径。
  2. 在Windows操作系统中,文件路径可以使用反斜杠(\)或正斜杠(/)作为路径分隔符。但是在Node.js中,建议使用正斜杠作为路径分隔符,这样可以在不同操作系统下保持代码的可移植性。
  3. 如果启用了缓存,fs.realpathSync()方法在第一次获取文件的真实路径后会将其缓存下来,下次再通过相同的路径获取时就会直接返回缓存中的结果。如果文件的真实路径发生了变化,就需要清空缓存才能获取最新的真实路径。