Mariusz
P.
Specjalista ds.
Rozwoju
Temat: Filtrowanie plików w directoryDialog w SWT
WitamMam 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