hallo, ich versuche mich gerade an einer pfadvervollständigung, ähnlich der shell in linux. dazu habe ich eine methode geschrieben, welche einen pfad übergeben bekommt. der kann so aussehen:
c:\programme --> funzt, alle unterverzeichnisse werden zurückgegeben
c:\prog --> funzt nicht, das liegt an dem matches(....)
hier erstmal der code:
sagen wir mal, ich übergebe der methode einen pfad in der art:
c:\programme\te --> soll auf c:\programme\test matchen, matcht aber auch auf zum beispiel c:\programme\converter, da da auch te drin vorkommt.
wie könnte ich das lösen?
DANKE
c:\programme --> funzt, alle unterverzeichnisse werden zurückgegeben
c:\prog --> funzt nicht, das liegt an dem matches(....)
hier erstmal der code:
Code:
public static ArrayList completePath(String pathToComplete) {
File path = new File(pathToComplete);
File searchPath;
String[] matches = { "" };
ArrayList allMatches = new ArrayList();
//The current path is no dir. --> search for matching dirs
if (!path.isDirectory()) {
searchPath = new File(path.getParent());
matches = searchPath.list();
for (int i = 0; i < matches.length; i++) {
File cont = new File(searchPath + fs + matches[i]);
if (cont.isDirectory() && cont.toString().matches(".*"+path.getName() + ".*")) {
allMatches.add(cont.toString());
}
}
//ab hier gehts !!!!
} else {
matches = new File(pathToComplete).list();
for (int i = 0; i < matches.length; i++) {
File cont = new File(pathToComplete + fs + matches[i]);
if (cont.isDirectory()) {
allMatches.add(cont.toString());
}
}
}
System.out.println(allMatches.size() + " matches found");
return allMatches;
}
sagen wir mal, ich übergebe der methode einen pfad in der art:
c:\programme\te --> soll auf c:\programme\test matchen, matcht aber auch auf zum beispiel c:\programme\converter, da da auch te drin vorkommt.
wie könnte ich das lösen?
DANKE