@NonNull
    public static File getGeocacheDataFile(@NonNull final String geocode, @NonNull final String fileNameOrUrl, final boolean isUrl, final boolean createDirs) {
        return FileUtils.buildFile(getGeocacheDataDirectory(geocode), fileNameOrUrl, isUrl, createDirs);
    }
Get the primary file corresponding to a geocode and a file name or an url. If it is an url, an appropriate
filename will be built by hashing it. The directory structure will be created if needed.
A null or empty geocode will be replaced by a default value.

@param geocode       the geocode
@param fileNameOrUrl the file name or url
@param isUrl         true if an url was given, false if a file name was given
@return the file
main/src/main/java/cgeo/geocaching/storage/LocalStorage.java