<..static String cleanPath( path )..>
public static String cleanPath( String path ){
String slash = System.getProperty("file.separator");
String userDir = System.getProperty( "user.dir" );
<.clean leading wigle.>
<.clean leading dots.>
<.clean internal dots.>
return path;
}
-_-_-
<..clean leading wigle..>
if( (path.length() > 0) && (path.charAt(0) == ’~’) ){
if( (path.length() == 1) || (path.charAt(1) != ’~’) ){
path = System.getProperty( "user.home" )
+ path.substring(1);
} }
-_-_-
<..clean leading dots..>
if( path.startsWith("..") ){
path = userDir.substring(0,
Math.max(0,Math.max(
userDir.lastIndexOf("/")
,
userDir.lastIndexOf("\\")
)))
+ path.substring(2);
}
if( path.startsWith(".") ){
path = userDir + slash + path.substring(1);
}
-_-_-
<..clean internal dots..>
int i;
while(
((i=path.indexOf("/..")) != -1)
||
((i=path.indexOf("\\..")) != -1)
){
String s = path.substring(0,i);
int j = Math.max(s.lastIndexOf("/"), s.lastIndexOf("\\"));
path = path.substring(0,j) + path.substring(i+3);
}
while(
((i=path.indexOf("/.")) != -1)
||
((i=path.indexOf("\\.")) != -1)
){
String s = path.substring(0,i);
int j = Math.max(s.indexOf("/"), s.indexOf("\\"));
path = path.substring(0,j) + path.substring(i+2);
}
-_-_-