package fr.tikione.steam.cleaner.util; import java.io.File; import java.util.Collections; import java.util.List; /** * This class performs analysis on files. */ public class FileComparator { private final List<File> files; private final List<Redist> redistsPatterns; private final List<Redist> checkedFiles; private final boolean onFiles; public FileComparator(List<File> files, List<Redist> redistsPatterns, List<Redist> checkedFiles, boolean onFiles) { this.files = Collections.unmodifiableList(files); this.redistsPatterns = Collections.unmodifiableList(redistsPatterns); this.checkedFiles = checkedFiles; this.onFiles = onFiles; } public final void start() throws InterruptedException { int nbfiles = files.size(); //Log.info("debug: FileComparator >> number of files or folders to check: " + nbfiles); if (nbfiles > 0) { int startIdx = 0; int endIdx = nbfiles - 1; //Log.info("debug: FileComparator >> startIdx=" + startIdx + ", endIdx=" + endIdx); for (int pos = startIdx; pos <= endIdx; pos++) { Redist candidate = FileUtils.checkFile(files.get(pos), redistsPatterns); if (candidate != null) { if (onFiles ? candidate.getFile().isFile() : candidate.getFile().isDirectory()) { if (!checkedFiles.contains(candidate)) { checkedFiles.add(candidate); } } } } } } }