Node.js 是否有方法确定节点中符号链接的目标路径? 处境
我只是遇到了一个不应该经常发生的奇怪情况,但我想阻止它再次发生 我有一段代码,可以创建源文件夹及其所有子文件夹中所有文件的深入目录列表 一般来说,直到今天,这从来都不是一个问题 我有一个开发伙伴,他不小心将子文件夹的符号链接设置为指向父文件夹。这导致我的深潜再次发生,直到它坠毁 例如:Node.js 是否有方法确定节点中符号链接的目标路径? 处境,node.js,symlink,fs,symlink-traversal,Node.js,Symlink,Fs,Symlink Traversal,我只是遇到了一个不应该经常发生的奇怪情况,但我想阻止它再次发生 我有一段代码,可以创建源文件夹及其所有子文件夹中所有文件的深入目录列表 一般来说,直到今天,这从来都不是一个问题 我有一个开发伙伴,他不小心将子文件夹的符号链接设置为指向父文件夹。这导致我的深潜再次发生,直到它坠毁 例如: topfolder topfolder/sub1 - real folder topfolder/sub2 - symlink back to topfolder 我的代码读取topfolder中的所有文件,然
topfolder
topfolder/sub1 - real folder
topfolder/sub2 - symlink back to topfolder
我的代码读取topfolder
中的所有文件,然后读取topfolder/sub1
中的所有文件,没有问题。然后,由于topfolder/sub2
指向topfolder/sub2
,我读取了topfolder/sub2
中的所有文件,这些文件与topfolder/sub2/sub1
中的文件相同,然后是topfolder/sub2/sub2
等
我的问题
在node.js中,是否有方法确定符号链接的目标?我想如果我能创建一个我读过的文件夹列表,当运行到上面的符号链接时,我确定目标确实是我已经读过的文件夹,那么我就跳过该文件夹
先谢谢你
在node.js中,是否有方法确定符号链接的目标
对。将返回符号链接的目标(如果是),否则返回错误
fs.readlink("sub2", function(err, destination){
if(err)
//sub2 is not a symlink, proceed to go into it
else if(destination)
//sub2 is a symlink, check if 'destination' is a folder we have already been through
});
令人惊叹的。谢谢