metoda na pobieranie plików z rozszerzeniem xml

0

Witam. Mam napisaną metodę której zadaniem jest pobranie z podanej lokalizacji pliki , które mają rozszerzenie .xml Zrobiłem to tak jak poniżej. działa ale Nie jest to chyba właściwy sposób. Czy ktoś mógłby przedstawić jakiś bardziej elegancki, chodzi mi tu jedynie o pętle for. Pozdrawiam

   public static List<String> getListaPlikowXml(){
		 File dir = new File(aa); //deklaracja katalogu z plikami
		 String[] children = dir.list();
		 List<String> dirList = new ArrayList<String>(); 		 
		 for (int i=0; i<children.length; i++) {
			    String tt = children[i];  
			    int aa = children[i].length()-1;
			    int bb = children[i].length()-2;
			    int cc = children[i].length()-3;
			    int dd = children[i].length()-4;
if ((tt.charAt(aa)== 'l')&&(tt.charAt(bb)== 'm')&&(tt.charAt(cc)== 'x')&&(tt.charAt(dd)== '.')){
		        	   dirList.add( children[i]);
		           }else{}
		 }
		 return dirList;
   }
0

Wygląda nie ciekawie, ja bym do filtrowania plików xml użył regex, lub jakieś innej funkcji operującej na stringach, ale na pewno nie charAt

0

A takie cos:

File[] xmls = new File(dir).listFiles(new FileFilter() {
    public boolean accept(File path) {
        if (path.isFile()) {
              String name = file.getName();
              int length = name.length;
              if (length >= 4) {
                   String last4 = name.substring(length - 4);
                   return last4.equalsIgnoreCase(".xml");
              }
        }
        return false;
    }
});

jest ok? Pisalem bez IDE wiec moze nie dzialac ale zasada jest ok.

0

To ja sobie pożyczę ten kawałek kodu i dodam takie coś:

File[] xmls = new File(dir).listFiles(new FileFilter() {
    public boolean accept(File path) {
        if (path.isFile()) {
              String name = file.getName();
              int length = name.length;
              if (length >= 4) {
                   return name.endsWith(".xml");
              }
        }
        return false;
    }
});
0

@up - zauwaz ze Twoj kod zawsze sprawdza czy rozszerzenie jest malymi literami. A co jesli jest rozszerzenie '.XmL'? Powinno dzialac, jest to wszak plik XML, a plik nie zostanie do takich zaliczony.

1 użytkowników online, w tym zalogowanych: 0, gości: 1