4479 Tage zuvor: Ein Filesystem in Excel
Vor kurzem musste ich die Datei- und Ordner-Struktur unserer File-Server abbilden (mit Zeitstempel der letzten Änderung). Idealer Weise in einer Form, in der man die Daten in einer Tabellenkalkulation weiter bearbeiten konnte. Mit Standard-Mitteln war zu viel manueller Aufwand involviert und die üblichen Skriptsprachen waren zu unflexibel. Daher habe ich meine reichlich angestaubten Java-Fähigkeiten bemüht und ein kleines Tool dafür geschrieben:
public class FileCrawler{ public static void main(String args[]){ String root = "."; if(args.length > 0) root = args[0]; FileCrawler fc = new FileCrawler(root); } java.io.FileWriter fout; java.text.SimpleDateFormat dformat; public FileCrawler(String root){ try{ this.fout = new java.io.FileWriter("FileCrawler.txt"); } catch(java.io.IOException e){ System.err.println("Could not write to FileCrawler.txt, using Console..."); } this.dformat = new java.text.SimpleDateFormat("M/d/y h:m:s a"); this.crawl(root); try{ this.fout.close(); } catch(java.io.IOException e){ } } private void crawl(String path){ java.io.File root = new java.io.File(path); if(!root.exists() && !root.isDirectory()){ System.err.println("Invalid path: " + path); return; } try{ java.io.File files[] = root.listFiles(); for(int i = 0; i < files.length; i++){ if(files[i].isDirectory()) this.crawl(root.getPath() + java.io.File.separator + files[i].getName()); else this.writeFile(path, files[i].getName(), files[i].lastModified()); } } catch(java.lang.Exception e){ System.err.println("Access denied: " + path); } } private void writeFile(String path, String file, long timestamp){ String modified = this.dformat.format(new java.util.Date(timestamp)); String msg = path + "\t" + file + "\t" + modified; try{ this.fout.write(msg + "\n"); } catch(java.io.IOException e){ System.out.println(msg);; } } }
Es nimmt einen zu scannenden Pfad als Parameter entgegen und schreibt die Ergebnisse als CSV-Datei weg. Vielleicht hilft es ja jemandem weiter. Und bedenken: Excel 2003 kann nur bis zu 46500 Zeilen verwalten!
Code
Kommentare [0]