Mariusz P.

Mariusz P. Specjalista ds.
Rozwoju

Temat: Filtrowanie plików w directoryDialog w SWT

Witam

Mam taką sobie klasę:

import java.io.File;
import java.io.FilenameFilter;
import java.util.regex.Pattern;

public class DirFilter implements FilenameFilter {
private Pattern pattern;
public DirFilter(String regex) {
pattern = Pattern.compile(regex);
}
public boolean accept(File dir, String name) {
return pattern.matcher(name).matches();
}
}


Wykorzystuję ją sobie do innej:

import java.io.File;
import java.util.Arrays;

public class DirList {
public String[] dirLists(String fileType, String pathToDirectory) {
File path = new File(pathToDirectory);
String[] list;
if(fileType.isEmpty()) list = path.list();
else list = path.list(new DirFilter(fileType));
Arrays.sort(list, String.CASE_INSENSITIVE_ORDER);
return list; }
}


Metoda ta ma zwracać przefiltrowaną i posortowaną już listę plików.

Powyższą klasę chcę użyć w innym miejscu kodu, a dokładniej w słuchaczu:

button1.addListener(SWT.MouseDown, new Listener() {
public void handleEvent(Event e) {
DirectoryDialog directoryDialog = new DirectoryDialog(shell, SWT.APPLICATION_MODAL | SWT.DIALOG_TRIM);
directoryDialog.setText("Przeglądanie w poszukiwaniu folderu");
directoryDialog.setMessage("Wybierz katalog");
String selectedDirectory = directoryDialog.open(); DirList listFiles = new DirList();
String fileType = ".*"+File.separatorChar+".mp3";
String[] filterFiles = listFiles.dirLists(fileType, selectedDirectory);
if (filterFiles.length == 0) text2.append("Pusto");
for (String file : filterFiles) text2.append(file+"\n"); }
});


Udało mi się jak widać samemu poradzić z tym zagadnieniem. Czy na tej grupie nie ma osób chętnych do pomocy? Temat raczej prosty dla programisty, który ma z javą na co dzień do czynienia. W dodatku przykłady prawie żywcem wzięte z książki "Thinking In Java".Mariusz P. edytował(a) ten post dnia 03.03.10 o godzinie 18:30