@CanIgnoreReturnValue
  private File createDirectory(String parent, String name) {
    Directory dir = (Directory) files.get(parent);
    Directory newFile = Directory.create(new Random().nextInt(), fileTimeSource.now());
    dir.link(Name.simple(name), newFile);
    files.put(name, newFile);
    return newFile;
  }
This path service is for unix-like paths, with the exception that it recognizes $ and ! as
roots in addition to /, allowing for up to three roots. When creating a {@linkplain
PathType#toUriPath URI path}, we prefix the path with / to differentiate between a path like
"$foo/bar" and one like "/$foo/bar". They would become "/$foo/bar" and "//$foo/bar"
respectively.
jimfs/src/test/java/com/google/common/jimfs/FileTreeTest.java