是否可以通过NodeJS检索文件/文件夹的唯一ID?

Sai*_*eep 1 file file-rename node.js

我面对的问题很简单。我想跟踪文件/文件夹,即使它已被重命名/删除等?NodeJS是否提供一种访问此信息文件的方式?我尝试了默认的文件系统模块fs.stats()https : //nodejs.org/api/fs.html#fs_class_fs_stats。不幸的是,它似乎没有为特定文件提供这种唯一的ID引用。

NodeJS中是否存在这样的解决方案?

注意:我不想为文件生成唯一ID。将随机字符串分配给文件并将该字符串与此关联非常简单。但这是另一回事。我想将文件与某种系统范围的字符串相关联。

任何帮助表示赞赏。

Rat*_*mar 5

查看链接https://nodejs.org/api/fs.html#fs_class_fs_stats

Stats {
  dev: 2114,
  ino: 48064969,
  mode: 33188,
  nlink: 1,
  uid: 85,
  gid: 100,
  rdev: 0,
  size: 527,
  blksize: 4096,
  blocks: 8,
  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 }
Run Code Online (Sandbox Code Playgroud)

我可以看到unix inode号。

两个文件可以具有相同的inode编号吗?

两个文件可以具有相同的索引节点,但前提是它们是不同分区的一部分。索引节点仅在分区级别是唯一的,而不在整个系统上唯一。

因此,除了索引号之外,还比较设备号。

var uniqueFileId[fileName] = (Stats.dev + Stats.ino)
Run Code Online (Sandbox Code Playgroud)

  • @SaiKrishnaDeep问题是Windows上的“inodes”是64位数字,无法在JavaScript数字中正确表示。这可能会导致不同的文件看起来具有相同的“ino”值。请参阅[关于 Node v7 的此评论](https://github.com/nodejs/node-v0.x-archive/issues/2670#issuecomment-265795379)。还有[这个问题](https://github.com/tivac/modular-css/issues/242)。 (2认同)