Java相対パス絶対ネットワーク絶対パス
1805 ワード
/**
*
* @param fileSrc css (/abc/def/h1.css)
* @param srcFileString css [./a.jpg][../../c.jpg]
* @return String
*/
public static String autoResetPath(final String filePath,final String srcFileString){
if(srcFileString.toLowerCase().indexOf("http")>-1){
return srcFileString;
}
if(srcFileString.trim().indexOf("/")==0){
return srcFileString;
}
String[]fileStrings=filePath.split("\\/");
int p=fileStrings.length,j=0;
StringBuilder text=new StringBuilder();
String[]dirs=srcFileString.split("\\/");
for(j=0;dirs!=null&&j<dirs.length;j++){
if(dirs[j].equals("..")){
p--;
if(p>-1){
dirs[j]=null;
}
}else if(dirs[j].equals(".")){
if(p>-1){
dirs[j]=null;
}
}
}
for(j=0,p--;j<p;j++){
if(fileStrings[j].trim().length()<1){
continue;
}
text.append("/").append(fileStrings[j]);
}
for(j=0;dirs!=null&&j<dirs.length;j++){
if(dirs[j]==null||dirs[j].equals("")){
continue;
}
text.append("/").append(dirs[j]);
}
return text.toString();
}
public static void main(String[]args){
String path1="http://admin/login.jsp",path2="./css/image.jpg";
System.out.println(" :"+autoResetPath(path1,path2));
}