@Nullable
  @Contract(pure = true)
  public static String getRelativePath(File base, File file) {
    if (base == null || file == null) return null;

    if (base.equals(file)) return ".";

    String filePath = file.getAbsolutePath();
    String basePath = base.getAbsolutePath();
    return getRelativePath(basePath, filePath, File.separatorChar);
  }
@Nullable
  @Contract(pure = true)
  public static String getRelativePath(File base, File file)