Java 相对路径转绝对网络绝对路径

/**
	 * 自动得到相对文件的路径
	 * @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));
        }

猜你喜欢

转载自kettas.iteye.com/blog/1962724