获得一个文件夹相对于另一个文件夹的相对路径
/**
* 获得targetPath相对于sourcePath的相对路径
* @param sourcePath : 原文件路径
* @param targetPath : 目标文件路径
* @return
*/
private static String getRelativePath(String sourcePath, String targetPath) {
StringBuffer pathSB = new StringBuffer();
if (targetPath.indexOf(sourcePath) == 0){
pathSB.append(targetPath.replace(sourcePath, ""));
}else {
String[] sourcePathArray = sourcePath.split("/");
String[] targetPathArray = targetPath.split("/");
if (targetPathArray.length >= sourcePathArray.length){
for (int i = 0; i < targetPathArray.length; i++){
if (sourcePathArray.length > i && targetPathArray[i].equals(sourcePathArray[i])){
continue;
}else {
for (int j = i; j < sourcePathArray.length; j++){
pathSB.append("../");
}
for (;i < targetPathArray.length; i++){
pathSB.append(targetPathArray[i] + "/");
}
break;
}
}
}else {
for (int i = 0; i < sourcePathArray.length; i++){
if (targetPathArray.length > i && targetPathArray[i].equals(sourcePathArray[i])){
continue;
}else {
for (int j = i; j < sourcePathArray.length; j++){
pathSB.append("../");
}
break;
}
}
}
}
return pathSB.toString();
}