@Nullable private static String findProperty(final String propertyName, final String fileContent) { String param = propertyName + "="; int idx = fileContent.indexOf(param); if (idx == -1) { param = "<key>" + propertyName + "</key>"; idx = fileContent.indexOf(param); if (idx == -1) return null; idx = fileContent.indexOf("<string>", idx); if (idx == -1) return null; idx += "<string>".length(); return fixDirName(fileContent.substring(idx, fileContent.indexOf("</string>", idx)), true); } else { String configDir = ""; idx += param.length(); if (fileContent.length() > idx) { if (fileContent.charAt(idx) == '"') { idx++; while ((fileContent.length() > idx) && (fileContent.charAt(idx) != '"') && (fileContent.charAt(idx) != '\n') && (fileContent.charAt(idx) != '\r')) { configDir += fileContent.charAt(idx); idx++; } } else { while ((fileContent.length() > idx) && (!Character.isSpaceChar(fileContent.charAt(idx))) && (fileContent.charAt(idx) != '\n') && (fileContent.charAt(idx) != '\r')) { configDir += fileContent.charAt(idx); idx++; } } } configDir = fixDirName(configDir, true); if (configDir.length() > 0) { configDir = (new File(configDir)).getPath(); } return configDir; } }