iNvAsIoN Geschrieben 30. Juli 2012 Geschrieben 30. Juli 2012 Hallo, ich habe eine Liste von Files angelegt z.b. eine Liste von XML Dateien und moechte diese in einen anderen Ordner verschieben. package PraktischeStudienphase; //import ! fuer Datenbank MySQLOperations etc. //import java.util.List; //import java.util.Map; import java.io.File; import java.util.ArrayList; import java.util.List; //import java.util.Map; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.w3c.dom.NodeList; //import DatenbankVerbindung.MySQLDBOperations; //import DatenbankVerbindung.MySQLDBOperations; //wieder import //import db.MySQLDBOperations; import junit.framework.TestCase; public class Testprogramm extends TestCase { private MyFileHelper fileHelper; private File XMLFile; private DocumentBuilderFactory dbFactory; private Document doc; private DocumentBuilder dBuilder; private static Node nNode; private static int temp = 0; // public static Fall fall; // setUp wird vor allen Tests ausgefuehrt @BeforeClass public void setUp() throws Exception { // C:\\Users\\Pascal\\Desktop\\XMLundHL7Dateien\\ergebnis_10000000.xml // List<File[]> hl7List = new ArrayList<File[]>(); // Datenbank // MySQLDBOperations sqlop = new MySQLDBOperations(); // String selectCommandLine = // "SELECT value FROM t_maris_server WHERE id = 'workdir.hl7.adt.in';"; // List<Map<String, Object>> liste = sqlop.CommandSelect(selectCommandLine); // System.out.println(selectCommandLine.getBytes()); // String arbeitsverzeichnis = (String) liste.get(0).get((Object) "VALUE"); XMLTable table = new XMLTable(); String path = javax.swing.JOptionPane.showInputDialog("Set up your pathname!"); fileHelper = new MyFileHelper(); // HL7 Dateien und XML-Dateien in einer Liste speichern List<File> XMLFileList = new ArrayList<File>(); List<File[]> HL7FileList = new ArrayList<File[]>(); // Speichern XML-Datei in Liste XMLFileList.add(fileHelper.getXMLPath(path)); for (File xmlfl : XMLFileList) { System.out.println("Ich bin eine XML-Datei: " + xmlfl.getName()); } // Speichern HL7-Dateien in Liste um sie auf den Server zu kopieren HL7FileList.add(fileHelper.getHL7Paths(path)); for (File[] hl7 : HL7FileList) { for (int i = 0; i < hl7.length; i++) { // path // C:\\Users\\Pascal\\Desktop\\DBSimulation // C:\\Users\\Pascal\\Desktop\\XMLundHL7Dateien // C:\\Users\\Pascal\\Desktop\\XMLundHL7Dateien\\ergebnis_10000000.xml System.out.println("Ich bin eine HL7-Datei: " + hl7[i].getName()); [COLOR="red"]Hier die alten Dateien loeschen funktioniert schon,jetzt will ich diese in einen anderen Ordner verschieben. Wie kann ich das machen? es gibt eine Funktion renameTo aber ich kriege es nich hin , weiss jemand wie das funktioniert?[/COLOR] hl7[i].delete(); } } XMLDOMParser xmlParser = new XMLDOMParser(); // path // C:\\Users\\Pascal\\Desktop\\DBSimulation // C:\\Users\\Pascal\\Desktop\\XMLundHL7Dateien // C:\\Users\\Pascal\\Desktop\\XMLundHL7Dateien\\ergebnis_10000000.xml XMLFile = new File(fileHelper.getXMLPath(path).toString()); dbFactory = DocumentBuilderFactory.newInstance(); dbFactory.setIgnoringElementContentWhitespace(true); dbFactory.setIgnoringComments(true); dBuilder = dbFactory.newDocumentBuilder(); doc = dBuilder.parse(XMLFile); doc.getDocumentElement().normalize(); System.out.println("Root element :" + doc.getDocumentElement().getNodeName()); NodeList nList = doc.getElementsByTagName("test"); System.out.println("-----------------------"); nNode = nList.item(temp); xmlParser.parseXML(nNode, 0, table); xmlParser.printTable(table); } @AfterClass public void tearDown() { } @Test public void testAll() { } } Zitieren
Goulasz Geschrieben 30. Juli 2012 Geschrieben 30. Juli 2012 Hey iNvAsIoN! Vorweg: Das Entfernen auskommentierten Codes hilft der Lesbarkeit ungemein und trägt zum Wohlwollen der Beitragsleser bei . Du löschst die Dateien aber nicht bevor du sie kopieren willst, oder? Dann wäre klar warum du sie danach nicht mehr kopieren kannst. Sonst sollte es kein all zu großes Problem darstellen die Datei zu kopieren und danach zu löschen. Zumindest in C# gibt es File.Copy(string Quelldateiname, string Zieldateiname, bool Overwrite) Ich gehe stark davon aus, dass das auch in Java vorhanden ist. Ergo: Datei kopieren, alte Datei löschen. Fertig. Entweder du hast nen Dreher drin oder ich verstehe dein Problem nicht. Gruß, Ziege Zitieren
flashpixx Geschrieben 30. Juli 2012 Geschrieben 30. Juli 2012 Vorweg: Das Entfernen auskommentierten Codes hilft der Lesbarkeit ungemein und trägt zum Wohlwollen der Beitragsleser bei . Das hatte ich schon in dem letzten Thread angemerkt. Du löschst die Dateien aber nicht bevor du sie kopieren willst, oder? Dann wäre klar warum du sie danach nicht mehr kopieren kannst. Wie wäre es mal mit Lesen der Dokumentation File (Java 2 Platform SE v1.4.2)) das würde ungemein weiter helfen. Zitieren
iNvAsIoN Geschrieben 30. Juli 2012 Autor Geschrieben 30. Juli 2012 (bearbeitet) Alles klar, danke! Habe es anders hinbekommen. Aber es gibt tatsaechlich auch File.copy hat mir nur nicht gefallen, weil man Pfade angeben muss. Danke fuer die Hilfe! Gruss inva Bearbeitet 30. Juli 2012 von iNvAsIoN Zitieren
lilith2k3 Geschrieben 30. Juli 2012 Geschrieben 30. Juli 2012 Java 7 Tage NIO.2 - Dateimanipulation mit Files - nullpointer.at Zitieren
Gast runtimeterror Geschrieben 30. Juli 2012 Geschrieben 30. Juli 2012 Ich kann NIO2 in Java 7 auch nur empfehlen. Die API ist zwar gewöhnungsbedürftig, aber unheimlich sauber und flexibel. Meist ist die Implementierung sogar schneller als die alte File-Klasse. Zitieren
speedi Geschrieben 9. August 2012 Geschrieben 9. August 2012 File f = new File("meineDateiImProgrammverzeichnis.bla"); f.rename(new File("blbubOrdner/"+f.getName())); "Aber es gibt tatsaechlich auch File.copy hat mir nur nicht gefallen, weil man Pfade angeben muss." ?? Muss man beim verschieben nicht immer Pfade angeben? Relativ oder Absolut sollte beides gehen. Zitieren
Gast runtimeterror Geschrieben 9. August 2012 Geschrieben 9. August 2012 Bitte nicht den Umweg über die Zeichenketten gehen. Dafür gibt's extra Konstruktoren/Methoden. Hat uns letzte Woche erst mehrere Stunden Arbeit gekostet, weil irgendein Zeichenkettengebastel mit Leerzeichen in Pfaden nicht klar kam. File f = new File("meineDateiImProgrammverzeichnis.bla"); File targetFolder = new File("blbubOrdner"); f.renameTo(new File(targetFolder, f.getName())); Oder in NIO2 (Hier gibt's gar keine Ausrede mehr, auf Zeichenketten auszuweichen) // Für Faule und für Legacy-Code Path sourceFile = new File("source.file").toPath(); Path targetFolder = new File("c:\\target\\folder").toPath(); Files.move(sourceFile, targetFolder.resolve(sourceFile)); Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.