diff --git a/src/main/java/com/rarchives/ripme/ripper/DownloadFileThread.java b/src/main/java/com/rarchives/ripme/ripper/DownloadFileThread.java index 9b515d1d..9b99f747 100644 --- a/src/main/java/com/rarchives/ripme/ripper/DownloadFileThread.java +++ b/src/main/java/com/rarchives/ripme/ripper/DownloadFileThread.java @@ -5,6 +5,7 @@ import java.net.HttpURLConnection; import java.net.SocketTimeoutException; import java.net.URL; import java.net.URLConnection; +import java.nio.file.Files; import java.nio.file.Paths; import java.util.Arrays; import java.util.HashMap; @@ -237,7 +238,7 @@ class DownloadFileThread extends Thread { } else if (saveAs.getAbsolutePath().length() > 259 && Utils.isWindows()) { // This if is for when the file path has gone above 260 chars which windows does // not allow - fos = new FileOutputStream( + fos = Files.newOutputStream( Utils.shortenSaveAsWindows(saveAs.getParentFile().getPath(), saveAs.getName())); } } diff --git a/src/main/java/com/rarchives/ripme/utils/Utils.java b/src/main/java/com/rarchives/ripme/utils/Utils.java index 9498af52..9e757a09 100644 --- a/src/main/java/com/rarchives/ripme/utils/Utils.java +++ b/src/main/java/com/rarchives/ripme/utils/Utils.java @@ -891,7 +891,7 @@ public class Utils { return fileNameToSan.replaceAll("[\\\\/:*?\"<>|]", "_"); } - public static File shortenSaveAsWindows(String ripsDirPath, String fileName) throws FileNotFoundException { + public static Path shortenSaveAsWindows(String ripsDirPath, String fileName) throws FileNotFoundException { LOGGER.error("The filename " + fileName + " is to long to be saved on this file system."); LOGGER.info("Shortening filename"); String fullPath = ripsDirPath + File.separator + fileName; @@ -909,7 +909,7 @@ public class Utils { fullPath = fullPath.substring(0, 259 - pathLength - fileExt.length() + 1) + "." + fileExt; LOGGER.info(fullPath); LOGGER.info(fullPath.length()); - return new File(fullPath); + return Paths.get(fullPath); } } diff --git a/src/test/java/com/rarchives/ripme/tst/UtilsTest.java b/src/test/java/com/rarchives/ripme/tst/UtilsTest.java index 3a8a8668..c43fa76a 100644 --- a/src/test/java/com/rarchives/ripme/tst/UtilsTest.java +++ b/src/test/java/com/rarchives/ripme/tst/UtilsTest.java @@ -1,7 +1,8 @@ package com.rarchives.ripme.tst; -import java.io.File; import java.io.FileNotFoundException; +import java.nio.file.Path; +import java.nio.file.Paths; import java.util.Arrays; import com.rarchives.ripme.utils.Utils; @@ -60,8 +61,8 @@ public class UtilsTest { public void testShortenFileNameWindows() throws FileNotFoundException { String filename = "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff.png"; // Test filename shortening for windows - File f = Utils.shortenSaveAsWindows("D:/rips/test/reddit/deep", filename); - Assertions.assertEquals(new File( + Path f = Utils.shortenSaveAsWindows("D:/rips/test/reddit/deep", filename); + Assertions.assertEquals(Paths.get( "D:/rips/test/reddit/deep/ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff.png"), f); }