以下node.js函数获取路径并成功检查它是否是符号链接(分别打印true
或false
到控制台):
var confirmPathNotSymLinked = function(path) {
var fs = require("fs");
fs.lstat(path, function(err, stats) {
console.log("is this file a symlink?: " + stats.isSymbolicLink());
});
}
问题:我现在如何检查路径是否只是一个符号链接,而是一个指向特定目录的符号链接?
例如,如果/path/to/file1
指向/the/actual/address/file1
,那么我如何创建一个pointsWithin
函数,pointsWithin("/path/to/file1", "/the/actual/address")
返回true
?
答案 0 :(得分:0)
您可以使用fs.readlink
。
以下是可能的实施方式:
function pointsWithin(path, dir, cb) {
fs.lstat(path, function(err, stats) {
if (err) return cb(err);
if (! stats.isSymbolicLink()) return cb(new Error('not a symlink'));
fs.readlink(path, function(err, dest) {
if (err) return cb(err);
return cb(null, dest.indexOf(dir) === 0);
});
});
};