Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Linux和MacOS中的fs.stat birthdime/birthdimems_Node.js_Unix_Electron_Filesystems_Fs - Fatal编程技术网

Node.js Linux和MacOS中的fs.stat birthdime/birthdimems

Node.js Linux和MacOS中的fs.stat birthdime/birthdimems,node.js,unix,electron,filesystems,fs,Node.js,Unix,Electron,Filesystems,Fs,调用fs.stat时返回的fs.Stats对象的属性之一是birthdime和birthdimems,我假设是在创建文件时返回的 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: 1318

调用
fs.stat
时返回的
fs.Stats
对象的属性之一是
birthdime
birthdimems
,我假设是在创建文件时返回的

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,              // this value
  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 } // and this value all the way down here

我想知道在UNIX或Linux和MacOS环境中是否使用并可靠地返回了
birthdime
birthdimems

我无法给出OSX的具体答案(尽管它肯定像是通过BSD系统调用支持的),但对于Linux/UNIX,事实上,我只是在NodeJS上遇到了这个问题,不得不做大量的研究来找出答案——我写了一篇文章。这不仅取决于操作系统,还取决于FS,很可能取决于其间的一些运行时和库,可能还取决于操作系统版本和FS驱动程序版本。出生时间并不是唯一的问题,因为出于安全原因,访问时间通常没有完全实现,更改时间和修改时间在非Unixish OS+FS组合上没有一致的区别,因为它们不是本地的,在某些组合上,一个未实现的字段包含垃圾而不是零,还有一些组合滥用改变时间来放置出生时间,认为ctime或ctime意味着创造时间。。。。。。改变的时间永远不会在平台上使用,或者两者都使用。Node提供了一种查询操作系统的方法,但不能查询文件位于哪个FS上,因此我们不能使用启发式算法来决定,而且Node中也没有可查询的API。2019年某个时候的出生时间现在应该在所有层中完全传播,使其在支持它的FS上可见。我认为MacOS支持它是因为HFS支持它。我希望大多数其他Unixish OSs不会支持它。我是为了一个玩具项目而调查这件事的,现在我已经离开了,所以我再也记不起全部细节了。如果你提交了一个节点错误,我会关注它。@JoshuaT这很奇怪,因为即使在你链接的文档中,它也会说“在没有生日的文件系统上,这个字段会保存ctime。”所以它并不能最终回答这个问题。@hippietrail如果我提交了错误,我会让你知道。那么,有没有其他方法可以按创建日期组织文件和/或目录?看起来这是一项非常重要的任务。。。