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));
        }