diff --git a/src/main/java/com/rarchives/ripme/ripper/DownloadFileThread.java b/src/main/java/com/rarchives/ripme/ripper/DownloadFileThread.java index c699522e..f0d78ddb 100644 --- a/src/main/java/com/rarchives/ripme/ripper/DownloadFileThread.java +++ b/src/main/java/com/rarchives/ripme/ripper/DownloadFileThread.java @@ -79,7 +79,7 @@ class DownloadFileThread extends Thread { observer.downloadErrored(url, "Download interrupted"); return; } - if (saveAs.exists() && !observer.tryResumeDownload()) { + if (saveAs.exists() && !observer.tryResumeDownload() || Utils.fuzzyExists(new File(saveAs.getParent()), saveAs.getName())) { if (Utils.getConfigBoolean("file.overwrite", false)) { logger.info("[!] Deleting existing file" + prettySaveAs); saveAs.delete(); diff --git a/src/main/java/com/rarchives/ripme/utils/Utils.java b/src/main/java/com/rarchives/ripme/utils/Utils.java index 77a062d0..31af93a0 100644 --- a/src/main/java/com/rarchives/ripme/utils/Utils.java +++ b/src/main/java/com/rarchives/ripme/utils/Utils.java @@ -741,4 +741,26 @@ public class Utils { return null; } + // Checks if a file exists ignoring it's extension. + // Code from: https://stackoverflow.com/a/17698068 + public static boolean fuzzyExists(File folder, String fileName) { + if (!folder.exists()) { + return false; + } + File[] listOfFiles = folder.listFiles(); + if (listOfFiles == null) { + return false; + } + + for (File file : listOfFiles) { + if (file.isFile()) { + String[] filename = file.getName().split("\\.(?=[^\\.]+$)"); //split filename from it's extension + if(filename[0].equalsIgnoreCase(fileName)) { + return true; + } + } + } + return false; + } + } \ No newline at end of file