if (! path.exists()) { env.warning(L.l("stat failed for {0}", path.getFullPath().toString())); return BooleanValue.FALSE; }
  static Value statImpl(Env env, Path path)  {    ArrayValue result = new ArrayValueImpl();    result.put(path.getDevice());    result.put(path.getInode());    result.put(path.getMode());    result.put(path.getNumberOfLinks());    result.put(path.getUser());    result.put(path.getGroup());    result.put(path.getDeviceId());    result.put(path.getLength());    result.put(path.getLastAccessTime() / 1000L);    result.put(path.getLastModified() / 1000L);    result.put(path.getLastStatusChangeTime() / 1000L);    result.put(path.getBlockSize());    result.put(path.getBlockCount());    result.put("dev", path.getDevice());    result.put("ino", path.getInode());        result.put("mode", path.getMode());    result.put("nlink", path.getNumberOfLinks());    result.put("uid", path.getUser());    result.put("gid", path.getGroup());    result.put("rdev", path.getDeviceId());        result.put("size", path.getLength());    result.put("atime", path.getLastAccessTime() / 1000L);    result.put("mtime", path.getLastModified() / 1000L);    result.put("ctime", path.getLastStatusChangeTime() / 1000L);    result.put("blksize", path.getBlockSize());    result.put("blocks", path.getBlockCount());    return result;  }