Zum Inhalt springen

Files in Java verschieben


iNvAsIoN

Empfohlene Beiträge

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()

	{


	}


}

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Gast runtimeterror

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Gast runtimeterror

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));

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...