@Override
	public List<GFile> getListing(GFile directory) {
		List<GFile> results = new ArrayList<>();
		directory = Objects.requireNonNullElse(directory, rootDir);

		if (directory.equals(rootDir) && isWindows) {
			for (File f : File.listRoots()) {
				results.add(GFileImpl.fromFSRL(this, null, getLocalFSRL(f), f.isDirectory(), -1));
			}
		}
		else {
			File localDir = new File(directory.getPath());
			if (!localDir.isDirectory() || FSUtilities.isSymlink(localDir)) {
				return List.of();
			}

			File[] files = localDir.listFiles();
			if (files == null) {
				return List.of();
			}

			for (File f : files) {
				if (f.isFile() || f.isDirectory() || FSUtilities.isSymlink(f)) {
					FSRL newFileFSRL = directory.getFSRL().appendPath(f.getName());
					results.add(GFileImpl.fromFSRL(this, directory, newFileFSRL, f.isDirectory(),
						f.length()));
				}
			}
		}

		return results;
	}
Converts a {@link File} into a {@link FSRL}.
<p>
NOTE: The given {@link File}'s absolute path will be used.

@param f The {@link File} to convert to an {@link FSRL}
@return The {@link FSRL}
Ghidra/Features/Base/src/main/java/ghidra/formats/gfilesystem/LocalFileSystem.java