tomgk: Entfernen von . und .. in einen Pfadnamen

Beitrag lesen

Hallo!

Ich habe versucht das Problem selbst zu lösen und folgende Java-Methode geschrieben:

public static String makeShort(String vpathname)
{
    StringBuilder pathBuilder=new StringBuilder(vpathname);

int x=pathBuilder.indexOf("/./");

while(x>=0)
    {
        pathBuilder.delete(x, x+2);//Macht aus "/./" ein "/"
        x=pathBuilder.indexOf("/./");
    }

int dp=pathBuilder.indexOf("/..");
    int y;

while(dp>=0)
    {
        y=pathBuilder.lastIndexOf("/", dp-1);

if(y<0)
            throw new SecurityException("Going out of Root:"+vpathname);

pathBuilder.delete(y, dp+3);

dp=pathBuilder.indexOf("/..");
    }

x=pathBuilder.indexOf("//");

while(x>=0)
    {
        pathBuilder.deleteCharAt(x);
        x=pathBuilder.indexOf("//");
    }

return pathBuilder.toString();
}

Funktioniert diese Methode einwandfrei oder gibt es irgendwelche Fehler?

MfG
tomgk

--
Selfcode=ie:% fl:( br:> va:| ls:& rl:? n4:? ss:| de:] js:| ch:? sh:) mo:) zu:(