最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

node.js中的fs.realpathSync方法使用说明_node.js

来源:动视网 责编:小采 时间:2020-11-27 21:30:15
文档

node.js中的fs.realpathSync方法使用说明_node.js

node.js中的fs.realpathSync方法使用说明_node.js:方法说明: 同步版的 fs.realpath() 。 语法: 代码如下: fs.realpathSync(path, [cache]) 由于该方法属于fs模块,使用前需要引入fs模块(var fs= require(fs) ) 接收参数: path 路径 cache 可选,一个文字的映射路径可用于强制一个特定
推荐度:
导读node.js中的fs.realpathSync方法使用说明_node.js:方法说明: 同步版的 fs.realpath() 。 语法: 代码如下: fs.realpathSync(path, [cache]) 由于该方法属于fs模块,使用前需要引入fs模块(var fs= require(fs) ) 接收参数: path 路径 cache 可选,一个文字的映射路径可用于强制一个特定


方法说明:

同步版的 fs.realpath() 。

语法:

代码如下:
fs.realpathSync(path, [cache])

由于该方法属于fs模块,使用前需要引入fs模块(var fs= require(“fs”) )

接收参数:

path 路径

cache 可选,一个文字的映射路径可用于强制一个特定的路径解决或避免额外的fs.stat需要知道真正的路径对象。

例子:

代码如下:
var fs = require('fs');

// 点号表示当前文件所在路径
var str = fs.realpathSync('.');
console.log(str);

源码:

代码如下:
fs.realpathSync = function realpathSync(p, cache) {
// make p is absolute
p = pathModule.resolve(p);
if (cache && Object.prototype.hasOwnProperty.call(cache, p)) {
return cache[p];
}
var original = p,
seenLinks = {},
knownHard = {};
// current character position in p
var pos;
// the partial path so far, including a trailing slash if any
var current;
// the partial path without a trailing slash (except when pointing at a root)
var base;
// the partial path scanned in the previous round, with slash
var previous;
start();
function start() {
// Skip over roots
var m = splitRootRe.exec(p);
pos = m[0].length;
current = m[0];
base = m[0];
previous = '';
// On windows, check that the root exists. On unix there is no need.
if (isWindows && !knownHard[base]) {
fs.lstatSync(base);
knownHard[base] = true;
}
}
// walk down the path, swapping out linked pathparts for their real
// values
// NB: p.length changes.
while (pos < p.length) {
// find the next part
nextPartRe.lastIndex = pos;
var result = nextPartRe.exec(p);
previous = current;
current += result[0];
base = previous + result[1];
pos = nextPartRe.lastIndex;
// continue if not a symlink
if (knownHard[base] || (cache && cache[base] === base)) {
continue;
}
var resolvedLink;
if (cache && Object.prototype.hasOwnProperty.call(cache, base)) {
// some known symbolic link. no need to stat again.
resolvedLink = cache[base];
} else {
var stat = fs.lstatSync(base);
if (!stat.isSymbolicLink()) {
knownHard[base] = true;
if (cache) cache[base] = base;
continue;
}
// read the link if it wasn't read before
// dev/ino always return 0 on windows, so skip the check.
var linkTarget = null;
if (!isWindows) {
var id = stat.dev.toString(32) + ':' + stat.ino.toString(32);
if (seenLinks.hasOwnProperty(id)) {
linkTarget = seenLinks[id];
}
}
if (util.isNull(linkTarget)) {
fs.statSync(base);
linkTarget = fs.readlinkSync(base);
}
resolvedLink = pathModule.resolve(previous, linkTarget);
// track this, if given a cache.
if (cache) cache[base] = resolvedLink;
if (!isWindows) seenLinks[id] = linkTarget;
}
// resolve the link, then start over
p = pathModule.resolve(resolvedLink, p.slice(pos));
start();
}
if (cache) cache[original] = p;
return p;
};

文档

node.js中的fs.realpathSync方法使用说明_node.js

node.js中的fs.realpathSync方法使用说明_node.js:方法说明: 同步版的 fs.realpath() 。 语法: 代码如下: fs.realpathSync(path, [cache]) 由于该方法属于fs模块,使用前需要引入fs模块(var fs= require(fs) ) 接收参数: path 路径 cache 可选,一个文字的映射路径可用于强制一个特定
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top