All pastes #757452 Raw Edit

Anonym

public java v1 · immutable
·published 2007-11-01 11:19 UTC
rendered paste body
package Assignment2;import java.io.*;public class DirDumper {	private final String[] xml_tags = { "<dir name=\"", "</dir>\n",			"<file name=\"", "\" size=\"",			"<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n" };	private final CharSequence[] stopChars = { "<", ">", "&", "\"", "'" };	private final String[] entities = { "&lt;", "&gt;", "&amp;", "&quot;",			"&apos;" };	private BufferedWriter writer = null;	public void makeXMLFile(File directory) throws IOException {		writer = new BufferedWriter(new FileWriter(new File("C:\\home.xml")));		writer.write(xml_tags[4]				+ (xml_tags[0])				+ removeStopChars(directory.getName().isEmpty() ? directory						.getAbsolutePath() : directory.getName()) + "\">\n");		dump(directory);		writer.write(xml_tags[1]);		writer.flush();		writer.close();	}	private void dump(File file) throws IOException {		File[] dir = file.listFiles();		if (dir == null) {			return;		}		for (int i = 0; i < dir.length; i++) {			String name = removeStopChars(dir[i].getName());			if (dir[i].isDirectory()) {				writer.write((xml_tags[0]) + name + "\">\n");				dump(dir[i].getAbsoluteFile());				writer.write(xml_tags[1]);			} else {				writer.write((xml_tags[2] + name + xml_tags[3]						+ dir[i].length() + "\" />\n"));			}		}	}	private String removeStopChars(String name) {		for (int j = 0; j < stopChars.length; j++) {			if (name.contains(stopChars[j])) {				name = name.replace(stopChars[j], entities[j]);			}		}		return name;	}	public static void main(String args[]) throws IOException {		if (args[0] == null) {			System.out.println("Bitte Dateipfad als Parameter übergeben");		} else {			DirDumper dir = new DirDumper();			dir.makeXMLFile(new File(args[0]));		}	}}