public static boolean exists(URI uri) {

		String scheme = uri.getScheme();
		if ("file".equals(scheme)) {
			File file = new File(uri);
			return file.exists();
		}

		if (!"jar".equals(scheme)) {
			// don't know how to check
			return false;
		}

		FileSystem fs = getOrCreateJarFS(uri);
		if (fs == null) {
			return false;// error
		}
		Path path = Paths.get(uri);
		return Files.exists(path);
	}
Return the relative path string of one resource file in another. If no path can be 
constructed or the files are the same, then null is returned.

Note: unlike {@link #relativizePath(File, File)}, this function does not resolve symbolic 
links.

<P>For example, given, in this order, two files with these paths
 <code>/a/b</code> and <code>/a/b/c</code>, this method will return 'c'.

@param f1 the parent resource file
@param f2 the child resource file
@return the relative path of {@code f2} in {@code f1}; null if f1 is not a parent of f2
Ghidra/Framework/Utility/src/main/java/utilities/util/FileUtilities.java