Datei kann nicht umbenannt oder verschoben werden ??

MiMa

Top Contributor
Ich möchte gerne eine Datei verschieben.
Dafür habe ich eine eigene Methode geschrieben, die im Kern folgenden Code ausführt
Java:
// Umbenennen / Verschieben der Datei
        if (alterName.renameTo(neuerName)) {
            IndexLogger.info("Datei wurde erfolgreich umbenannt/verschoben");
        } else {
            IndexLogger.info("Datei konnte nicht umbenannt/verschoben werden");
        } // if-else
Leider möchte die PDF Datei nicht verschoben werden und erhalte im Log die Ausgabe:
Datei konnte nicht umbenannt/verschoben werden aus dem else-Abschnitt.
Mit den Debugger habe ich alles nach geschaut und konnte keine ungereimtheiten feststellen. Seltsamerweise funktioniert das mit anderen Datei wunderbar???
Die PDF war dabei geöffnet und ich dachte, das es daher nicht geklappt hat.
Leider war dies nicht das Problem.
Irgendetwas muss mit der Datei sein?
Weiss vielleicht jemand warum manche Dateien so zicken machen?
Die besagte Datei ist ein PDF Scan mit einem OCR Textinhalt.
Die Datei kann ich aber mit dem Datei-Explorer kopieren verschieben und auch löschen.
Aber keine umbenennung mit Java?
Ich habe auch in dieser Datei das Änderungsdatum berschrieben und das hat aber funktioniert?
Java:
dateiObjekt.getDateiQuelle().setLastModified(millisekunden);
Vielen Dank
M
 

MiMa

Top Contributor
Bedeutet das, man soll File überhaupt nicht mehr nutzen und besser die nio2 Klasse verwenden?
Dann müsste ich alle Methoden in denen ich File verwendet habe umschreiben und stattdessen Path verwenden!?!
Es gibt ja immer noch viele Klassen, die File benötigen!
Ich programmiere derzeit unter Windows 10, arbeite aber auch mit macOS.
 
Zuletzt bearbeitet:

Flown

Administrator
Mitarbeiter
Nein heißt es nicht. Die NIO.2 API ist einfach non-blocking-io, aber bietet mehr Kontrolle (und bessere Exceptionhandling Möglichkeiten).
Man kann leicht zwischen File und Path hin und her switchen mit toFile und toPath.

Ich verwende gerne die Files Klasse zum Überprüfen von Files und erstellen von In-/OutputStreams.
 

MiMa

Top Contributor
Ich weis jetzt nicht, ob das so einfach ist?
Code:
Path alteDatei = alterName.toPath();
Path neueDatei = neuerName.toPath();
Files.move(alteDatei, neueDatei);
Habe die Methode so abgeändert, die IDE gemängelt keine Fehler.
Beim ausführen gibt es jedoch ein Problem und die Datei wird nicht verschoben.
Die Problemzeile ist : Files.move(alteDatei, neueDatei);
 

InfectedBytes

Top Contributor
Ohne zu wissen welche Exception geworfen wird, kann man nur rumraten.
Kann es vielleicht sein das du die zu verschiebende Datei in deinem Programm geöffnet aber nicht geschlossen hast?
 

MiMa

Top Contributor
Ich erhalte in der Problemmitteilung:
Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird.
Ich habe den Rechner neu gestartet, mit dem Datei-Explorer nicht darauf zugegriffen.
Ein Zugrif erfolgte lediglich im Java Programm selbst, indem ich die Datei gelistet und Informationen extrahiert habe. Es wurde auch kein einen Stream auf diese Datei geöffnet. Ebenfalls habe ich das schreiben des Änderungsdatums deaktiviert.
Die Extraktion erfolgte über die Apache Tika Klassen.
 

InfectedBytes

Top Contributor
Es wurde auch kein einen Stream auf diese Datei geöffnet. ...
Die Extraktion erfolgte über die Apache Tika Klassen.
Da Tika Informationen aus der Datei extrahiert, muss es diese natürlich auch öffnen. Und genau hier wird dein Problem liegen, Tika schließt die Datei nicht wieder, bzw. du musst sie ggf selbst schließen.
 

MiMa

Top Contributor
Ich hatte angenommen, wenn Tika etwas öffnet, das es dann auch wieder schliesst?!
Zumindest hatte das verschieben mal in meinem Java Programm mit der "renameTo" Methode funktioniert.
Über ein schliessen habe ich in den Tutorials und in dem Buch Tika in Action nie gelesen.
http://www.w3ii.com/de/tika/tika_content_extraction.html
Demnach wüsste ich jetzt nicht wo und wie ich etwas schliessen sollte?
Habe jetzt mal eine Datei.txt ohne Extraktion verschieben wollen.
Es gabe jetzt keine Fehler, allerdings wueder die Datei auch nicht verschoben? :(
Java:
public static void umbenennenDatei(File alterName, File neuerName) throws IOException {

        // Entfernen der Leerzeichen aus dem neuen "Dateinamen"
        neuerName = new File(neuerName.getParentFile() + "/" + Text.entferneLeerzeichen(neuerName.getName()));

        IndexLogger.info("Alter Dateiname        : " + alterName);
        IndexLogger.info("Neuer Dateiname        : " + neuerName);

        // Prüfen ob das Zielverzeichnis schon existiert
        if (!neuerName.getParentFile().exists()) {
            IndexLogger.info("Das Verzeichnis existiert nicht");
            neuerName.getParentFile().mkdir();
            IndexLogger.info("Das Verzeichnis wurde erstellt");
        } // if-Bedingung

        // Prüfen ob der neueName im Zielverzeichnis schon existiert
        if (neuerName.exists()) {
            neuerName = pruefenDateiExistiert(neuerName);
            IndexLogger.info("Die Datei existiert bereits und wurde daher umbenannt : " + neuerName);
        } // if-Bedingung

        // Umbenennen / Verschieben der Datei
//        if (alterName.renameTo(neuerName)) {
//            IndexLogger.info("Datei wurde erfolgreich umbenannt/verschoben");
//        } else {
//            IndexLogger.info("Datei konnte nicht umbenannt/verschoben werden");
//        } // if-else
        Path alteDatei = alterName.toPath();
        Path neueDatei = neuerName.toPath();
        Files.move(alteDatei, neueDatei);
    } // umbenennenDatei
 

InfectedBytes

Top Contributor
Wie genau sieht denn dein extraction code aus?
ggf. musst du halt einen eigenen stream and Tika übergeben, denn kannst du dann auch selbst wieder schließen.
 

MiMa

Top Contributor
Die Text Extrahierung habe ich in eine eigene Methode gelegt.
Absolut unspektakulär.
Java:
public static String extrahiereText(File dateiQuelle) throws IOException, TikaException {
        // Erzeugt ein Tika-Objekt
        Tika tikaObjekt = new Tika();

        // Extrahiert den Inhalt der Datei
        String inhalt = tikaObjekt.parseToString(dateiQuelle);
        IndexLogger.info("Der Dateiinhalt wurde in die Instanzvariable \"inhalt\" extrahiert");
        return inhalt;
    } // extrahiereInhalt
 

InfectedBytes

Top Contributor
sollte grob so aussehen:
Java:
Inputstream input = null;
try {
  input = new FileInputStream(dateiQuelle);
  String inhalt = tikaObjekt.parseToString(input);
} catch(IOException ex) {
  // .. Fehlerbehandlung
} finally {
  if(input != null) input.close();
}
 

MiMa

Top Contributor
Danke,
muss ich das dann für auch für jede andere Extraktion von Metadaten auch machen?
Wie Dateityp, Dateiendung usw.
 

MiMa

Top Contributor
Also das mit dem verschieben klappt nicht.
Irgendwo wird wird immer noch darauf zugegriffen. :(
Das kopieren der Datei mit
Code:
 Files.copy(alteDatei, neueDatei);
Funktioniert jedoch einwandfrei.

*** Nach ein paar Stunden ***
Habe jetzt alle Parser ind Tika Aktivitäten abgeschaltet und jetzt kann ich die Datei umbenennen oder Verschieben.
Und zwar funktioniert es jetzt mit der "renameTo" als auch mit der "move" Methode.

Die Methode des Umbenennens arbeitet korrekt.
Es ist wirklich schade, das Tika die Parser selbst nicht mehr schließt.

Zumindes habe ich jetzt einen Ansatz für eine Lösung.
 
Zuletzt bearbeitet:

MiMa

Top Contributor
Soweit ist jetzt alles aktualisiert worden und nun funktioniert es wie es soll.
Die Übeltäter wurden identifiziert und entsprechende stellen in Methoden geändert.
Vielen Dank noch für Eure Hilfe.
:)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Erste Schritte Mp3 Datei kann nicht von der Festplatte geöffnet werden - mit ChatGPT erstellt Allgemeine Java-Themen 7
W Bilder werden in App mit Jar-Datei nicht angezeigt Allgemeine Java-Themen 15
Dann07 MP3 Datei abspielen funktioniert nicht Allgemeine Java-Themen 6
O Aus JAR-Datei erstellte EXE-Datei funktioniert nicht Allgemeine Java-Themen 10
J Hilfe, Jar Datei kann nicht ausgeführt werden Allgemeine Java-Themen 2
M Programm erkennt String aus .txt Datei nicht Allgemeine Java-Themen 3
O Java-Applikation tut in Netbeans, als JAR nicht, wegen Pfadangaben einer benötigten Datei Allgemeine Java-Themen 8
Elyt Compiler-Fehler Datei kann nicht erstellt werden. Die Syntax für den Dateinamen etc. ist falsch. Allgemeine Java-Themen 2
O docx-Datei erzeugung mit DocXStamper funktioniert nicht Allgemeine Java-Themen 2
I Temp-Datei wird nicht gelöscht Allgemeine Java-Themen 12
Trèfle Excel-Datei nicht speicherbar, da von Java zum Bearbeiten gesperrt. Allgemeine Java-Themen 3
H .jar Datei startet nicht richtig bei Doppelklick Allgemeine Java-Themen 11
R jar-Datei funktioniert nicht Allgemeine Java-Themen 2
T Jar Datei nicht ausführbar Allgemeine Java-Themen 6
S Datei wird nicht gefunden Thread.currentThread().getContextClassLoader().getResourceAsStream() Allgemeine Java-Themen 1
K Erste Schritte Start einer JAR Datei 2 Wege aber einmal nicht die volle Funktionlität Allgemeine Java-Themen 20
The Pi NetBeans Bilder in Jar Datei werden nicht angezeigt Allgemeine Java-Themen 7
Arif Input/Output Serialisierung - Datei wird nicht erzeugt Allgemeine Java-Themen 3
K jar-Datei lässt sich unter Windows nicht verwenden Allgemeine Java-Themen 3
D Java Datei nach Eclipse Export funktioniert nicht Allgemeine Java-Themen 0
W Input/Output Kann .properties Datei in kompilierter .jar nicht ändern Allgemeine Java-Themen 2
X Löschen von einer Zeile in einer Text Datei. Klappt nicht. Allgemeine Java-Themen 4
F Datei einlesen funktioniert nicht Allgemeine Java-Themen 3
G Befehl funktioniert in Eclipse allerdings nicht in einer Jar-Datei Allgemeine Java-Themen 3
A .jar Datei startet nicht Allgemeine Java-Themen 6
P Input/Output Datei einlesen per Scanner(f) - mit Cron gehts nicht Allgemeine Java-Themen 1
I Datei wird nicht richtig gelöscht Allgemeine Java-Themen 7
D Input/Output Datei wird lokal aber nicht vom Webserver ausgelesen... Allgemeine Java-Themen 2
F Nach Export wird PDF Datei nicht mehr gefunden Allgemeine Java-Themen 0
M JAR Datei erstellen funktioniert nicht Allgemeine Java-Themen 5
V 2D-Grafik BufferdImage aus gif Datei in Jar erzeugen geht nicht. Allgemeine Java-Themen 6
J batch datei wird nicht aufgerufen Allgemeine Java-Themen 11
J Datei kann nicht geladen werden... Allgemeine Java-Themen 18
M Datei wird nicht vollständig geschrieben (FileOutputStream, OutputStreamWriter, Encoding) Allgemeine Java-Themen 6
Zettelkasten JAR-Datei kann bei Freund auch nicht mit CMD ausgeführt werden Allgemeine Java-Themen 4
E ProcessBuilder findet Datei nicht Allgemeine Java-Themen 3
C .Ini-Datei Wert Änderungen werden nicht angenommen Allgemeine Java-Themen 3
T Kann HTML Datei nicht lesen Allgemeine Java-Themen 3
M Input/Output Datei erzeugen funktioniert nicht (immer) vom .jar aus Allgemeine Java-Themen 5
S Programm findet eingebundene .jar Datei nicht Allgemeine Java-Themen 7
I Downloaden einer Datei geht nicht? Allgemeine Java-Themen 16
S jar-Datei stellt Umlaute nicht dar Allgemeine Java-Themen 6
P Input/Output Ordner löschen --> geht nicht Datei --> Ja Allgemeine Java-Themen 6
C Datei in Jar-File wird nicht gefunden Allgemeine Java-Themen 10
P jar-Datei lässt sich nicht ausführen Allgemeine Java-Themen 5
G jar Datei findet Main Class nicht... Allgemeine Java-Themen 2
D Input/Output Datei ausgewählt - Datei soll nicht existieren Allgemeine Java-Themen 5
S Letzte txt.Datei nicht geschrieben Allgemeine Java-Themen 4
T Properties Datei nicht jedes mal neu schreiben? Allgemeine Java-Themen 2
P Datei aus Ordner wird nicht gelesen Allgemeine Java-Themen 2
buntuswalus Jar-File [Datei nicht gefunden] (im Jar) Allgemeine Java-Themen 15
capgeti batch datei funktioniert nicht! Jar wird nicht gestartet! Allgemeine Java-Themen 3
T Properties Datei nicht löschbar Allgemeine Java-Themen 8
FoolMoon Datei zeilenweise einlesen, aber nicht die erste Zeile! Allgemeine Java-Themen 3
M bug? datei oeffnen nicht Desktop.open Allgemeine Java-Themen 3
J Entweder XP oder Vista findet die Datei nicht FileNotFoundException Allgemeine Java-Themen 4
D JExcelAPi -> Kann Datei nicht lesen Allgemeine Java-Themen 2
D Kann Tiff Datei nicht löschen Allgemeine Java-Themen 12
M Nach export in jar datei werden Datein nicht eingelesen Allgemeine Java-Themen 7
G Datei löschen nach kopieren geht nicht Allgemeine Java-Themen 5
P Properties liest nicht alles aus Datei aus Allgemeine Java-Themen 17
I Objekte werden nicht aus Datei eingelesen Allgemeine Java-Themen 11
E .jar - Datei funktioniert nicht richtig Allgemeine Java-Themen 10
E Anwendung ließt .ini-Datei nicht Allgemeine Java-Themen 3
S jar-datei auf anderem Rechner nicht ausführbar. Allgemeine Java-Themen 40
J JAR-Datei funktioniert nicht Allgemeine Java-Themen 15
I "Config-Datei nicht gefunden" Allgemeine Java-Themen 5
K error=2 (Datei nicht gefunden) - Datei ist aber da! Allgemeine Java-Themen 10
S Javaprogramm lässt sich nicht per .bat Datei ausführen. Allgemeine Java-Themen 22
G jar Datei läßt sich vom Taskplaner nicht starten Allgemeine Java-Themen 4
V log4j.properties wird in der jar Datei nicht gefunden? Allgemeine Java-Themen 2
L Jar-Datei aus Eclipse geht nicht Allgemeine Java-Themen 2
B jar-Datei lässt sich nicht ausführen Allgemeine Java-Themen 10
R ClassLoader funktioniert in Verbindung mit JAR-Datei nicht Allgemeine Java-Themen 8
kodela StatusBar-Anzeigen auch in Log-Datei ausgeben Allgemeine Java-Themen 3
G Maven Projekt JAR-Datei Allgemeine Java-Themen 6
E XML - Datei Darstellung in IntelliJ als Baum Allgemeine Java-Themen 2
Thomasneuling Java Jar datei erstellen, von Projekt, dass auch Javafx Dateien, FXML Dateien und CSS Dateien, sowie Bilder enthält? Allgemeine Java-Themen 14
J Filenotfoundexception obwohl Datei existiert Allgemeine Java-Themen 6
M Java Überprüfen ob .exe-Datei bereits ausgeführt wird Allgemeine Java-Themen 2
S .exe Datei/Programm auslesen? Allgemeine Java-Themen 2
E Datei verschoben Event Allgemeine Java-Themen 3
D Datei mit "Kohsuke GitHub API" in Repository hochladen Allgemeine Java-Themen 2
S Bookmark HTML Datei einlesen, alle Links erhalten und manche editieren..? (aktuell JSoup) Allgemeine Java-Themen 4
melaniemueller Einzelne Zeile aus einer txt Datei in einem String speichern Allgemeine Java-Themen 12
G JavaFX Maven Projekt als .exe Datei exportieren Allgemeine Java-Themen 10
J (Geplante) Änderungen an einer Datei vorübergehend speichern und anwenden? Allgemeine Java-Themen 12
Neumi5694 Datei komprimiert Allgemeine Java-Themen 6
_user_q Obfuscate einer .jar-Datei mit ProGuard? Allgemeine Java-Themen 2
_user_q Verknüpfung einer .jar-Datei (liegt z. B. auf dem Desktop) im Autostart-Ordner erstellen? Allgemeine Java-Themen 20
E java mithilfe url .jar datei öffnen Allgemeine Java-Themen 9
E Java .exe Datei mit args starten Allgemeine Java-Themen 2
Master3000 Java Datei mehrmals einlesen Allgemeine Java-Themen 4
M Excel Datei Erstellen Allgemeine Java-Themen 2
E Input/Output Eigene Datei mit java öffnen Allgemeine Java-Themen 9
R Sonderzeichen aus Datei einlesen und in Datei ausgeben. Allgemeine Java-Themen 17
Tobero Download .jar von github lädt kaputte Datei runter Allgemeine Java-Themen 3
P Bat Datei in Java ausführen Allgemeine Java-Themen 2
S Verwendet Programmiersprache aus Quellcode - Datei ermitteln Allgemeine Java-Themen 6
T Problem beim Umwandeln in eine Jar-Datei Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben