make method to check if directory exists

This commit is contained in:
mszkb 2018-01-20 15:13:46 +01:00
parent 554d91f0ea
commit 26a52809da
2 changed files with 40 additions and 1 deletions

View File

@ -197,8 +197,11 @@ public abstract class AlbumRipper extends AbstractRipper {
title = super.getAlbumTitle(this.url); title = super.getAlbumTitle(this.url);
} }
logger.debug("Using album title '" + title + "'"); logger.debug("Using album title '" + title + "'");
title = Utils.filesystemSafe(title); title = Utils.filesystemSafe(title);
path += title + File.separator; path += title;
path = Utils.getOriginalDirectory(path) + File.separator; // check for case sensitive (unix only)
this.workingDir = new File(path); this.workingDir = new File(path);
if (!this.workingDir.exists()) { if (!this.workingDir.exists()) {
logger.info("[+] Creating directory: " + Utils.removeCWD(this.workingDir)); logger.info("[+] Creating directory: " + Utils.removeCWD(this.workingDir));

View File

@ -370,6 +370,42 @@ public class Utils {
return text; return text;
} }
/**
* Checks if given path already exists as lowercase
*
* @param path - original path entered to be ripped
* @return path of existing folder or the original path if not present
*/
public static String getOriginalDirectory(String path) {
int index;
if(isUnix() || isMacOS()) {
index = path.lastIndexOf('/');
} else {
// current OS is windows - nothing to do here
return path;
}
String original = path; // needs to be checked if lowercase exists
String lastPart = original.substring(index+1).toLowerCase(); // setting lowercase to check if it exists
String lowerCaseOriginal = path.substring(0, index)
+ File.separator
+ lastPart;
if(original.equals(lowerCaseOriginal)) {
// same name, nothing to do
return original;
}
// At last, check if the File with the original exists
File f = new File(original);
if(f.exists()) {
return original;
} else {
return lowerCaseOriginal;
}
}
public static String bytesToHumanReadable(int bytes) { public static String bytesToHumanReadable(int bytes) {
float fbytes = (float) bytes; float fbytes = (float) bytes;
String[] mags = new String[] {"", "K", "M", "G", "T"}; String[] mags = new String[] {"", "K", "M", "G", "T"};