如何确保两个路径不引用Node中的同一文件夹

时间:2017-06-18 21:48:15

标签: javascript node.js

在Windows上,路径不区分大小写,在Linux上它们区分大小写。

我有一个提供文件的文件服务器,这没关系,因为它将基于正在使用的操作系统提供服务。但我会跟踪某些路径(包含特定文件的所有文件夹路径),并为每个路径加载一个类的新实例。但我的问题是,如果有人使用的是不区分大小写的操作系统,它会为同一路径加载两个实例,这是不行的。然而,我不想仅仅在forLowerCase()上进行比较,因为它们可能位于区分大小写的文件系统上。

有没有办法使用文件夹统计信息来检查我是否有相同的文件夹?或者其他一些方式?

1 个答案:

答案 0 :(得分:0)

您可以使用fs.stat获取https://nodejs.org/api/fs.html#fs_class_fs_stats

  

对于常规文件util.inspect(stats)将返回一个与此非常类似的字符串:

Stats {
dev: 2114,
ino: 48064969,
mode: 33188,
nlink: 1,
uid: 85,
gid: 100,
rdev: 0,
size: 527,
blksize: 4096,
blocks: 8,
atimeMs: 1318289051000.1,
mtimeMs: 1318289051000.1,
ctimeMs: 1318289051000.1,
birthtimeMs: 1318289051000.1,
atime: Mon, 10 Oct 2011 23:24:11 GMT,
mtime: Mon, 10 Oct 2011 23:24:11 GMT,
ctime: Mon, 10 Oct 2011 23:24:11 GMT,
birthtime: Mon, 10 Oct 2011 23:24:11 GMT }

我相信ino是您的inode编号,应该对于您正在讨论的磁盘分区是唯一的。如果路径指示分区,那么对于特定路径,您应该是好的。我想如果你想处理符号链接和其他文件系统的好东西,这可能会很有趣。