gpt4 book ai didi

javascript - 我如何找出文件是否在 Node.js 的目录中?

转载 作者:数据小太阳 更新时间:2023-10-29 06:03:37 25 4
gpt4 key购买 nike

给定两个绝对或相对路径,AB,我想找出 B 是否在目录“内部”A——不仅在目录本身,而且可能在子目录中。我想在没有潜在大量 fs.readdir 调用的情况下执行此操作。

例如,如果A/B/foo/bar/baz,它应该很明显 BA 中;递归 readdir 方法效率极低。

一个明显的想法是将两个路径都转换为绝对形式,然后检查B的绝对路径的字符串形式是否以A的字符串形式开头.但是,有两个问题:

  1. 如何将相对路径转换为绝对路径?
  2. 符号链接(symbolic link)之类的呢?

我会接受调用 Linux 实用程序的答案(rm -rf...技术上 可用于解决问题)或第三-派对 Node 库。

最佳答案

var fs = require('fs');

var a = fs.realpathSync('/home/mak/www'); // /var/www
var b = fs.realpathSync('/var/www/test/index.html');

var b_in_a = b.indexOf(a) == 0;

var a_is_dir = fs.statSync(a).isDirectory();

fs.*Sync 也有异步版本,参见 fs module .

fs.realpathSyncfs.statSync 将在路径不存在时抛出。

关于javascript - 我如何找出文件是否在 Node.js 的目录中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5888477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com