class RelativeFiles {

    @NonNull
    public static ImmutableSet<RelativeFile> fromZip(@NonNull File zip) throws IOException {
        Preconditions.checkArgument(zip.isFile(), "!zip.isFile(): %s", zip);

        Set<RelativeFile> files = Sets.newHashSet();

        try (ZFile zipReader = ZFile.openReadOnly(zip)) {
            for (StoredEntry entry : zipReader.entries()) {
                if (entry.getType() == StoredEntryType.FILE) {
                    files.add(new RelativeFile(zip, entry.getCentralDirectoryHeader().getName()));
                }
            }
        }

        return ImmutableSet.copyOf(files);
    }

    private  RelativeFiles();

}