Filetools

Aus Physik
Zur Navigation springen Zur Suche springen

Die grundlegende Idee hinter diesen Tools ist, Klassen zur Verfügung zu stellen, die sowohl eigenständig (konkrete Klassen mit main(...) Methode) als auch von anderen Modulen aus verwendet werden können. Für letztere Variante wird in jedem Paket ein allgemeines Interface definiert, sodass die Klassen möglichst allgemein benutzt weden kann (z.B. in einer Strategy).

Package filesearchtools

Beinhaltet Klassen zum Durchsuchen von Verzeichnisstrukturen.

Interface

public interface IFileSearch {
    abstract public int searchDir(File searchDir); 
}

Einfache Basisklasse

public abstract class SimpleFileSearch implements IFileSearch {
    public SimpleFileSearch(File outputFile){}
    public int searchDir(File searchdir){}
    abstract protected boolean isDirToSearch(String dir);
    abstract protected boolean isSearchedFileName(String filename);
    abstract protected void processFile(File file);
}

Kapselt Funktionalität zum Durchsuchen einer Verzeichnisstruktur.

Konkrete Klassen müssen Funktionen überschreiben, in denen spezifiziert wird, welche Files in welchen Verzeichnissen gesucht werden.

Konkrete Klasse MatlabfunctionFileSearch

public class MatlabfunctionFileSearch extends SimpleFileSearch{
    ...
}

Sucht Files, die Matlab-Funktionen beinhalten und speichert den Namen jedes Files (und somit der Funktion) als primitives ASCII File, wobei in jeder Zeile ein Name steht. Zeilentrennung erfolgt mit "\n".

Es werden .m Files gesucht, deren Name nicht mit einem Großbuchstaben anfängt. Dabei werden alle Verzeichnisse, die nicht mit "@" anfangen, durchsucht.

Verwendung als Anwendung

$ java filesearchtools/SimpleFileSearch <directory>

wobei <directory> als Ausgangspunkt für die Suche verwendet wird.