Dateiünerreste bei renameTo()

  • Hallo

    Ich sitze seit stunden bei einem problem dass mich noch wahnsinnig macht. Ich bennene Datein mittels folgender code zeile um:

    Code
    boolean renamed = oldFile.renameTo(newFile);

    Funktioniert auch alles schön und gut, aber manchmal bleibt ein teil des alten files (oldFile) (immer ein paar KB vom anfang) übrig. Das neue File (newFile) mit neuem dateiname gibt es auch und hat auch den korrekten Inhalt. Nur stört es mich dass auch noch dass alte manchmal noch vorhanden ist. Ich hab jetzt so lange debugged dass ich den Fehler genau auf diese methode abschieben kann. Wie kann das sein. Java Bug?

    Die methode in der besagte zeile aufgerufen wird ist übrigends in einem thread falls das was damit zu tun hat?

    Das witzige ist dass es immer die selben Files betrifft bei denen das Problem auftritt. Renamed ist übrigends immer brav auf true

    mfg

  • ich werd noch wahnsinnig...

    Hier der ganze code der methode falls das vielleicht mehr hilft.

  • "Benennst" du das wirklich nur um (im gleichen Verzeichnis)? Oder verschiebst du es z.B. auf eine andere Partition?

    Kann es sein, dass du Java herunterfährst oder den Thread irgendwie killst, während das Ding läuft?

    Ist die Platte (fast) voll? Überschreitest du deine Quota?

    Kommt mir zwar alles komisch vor, aber irgendeinen Grund wird's schon haben...

  • ja, nur umbenennen, bleib auf der selben partition im selben verzeichnis. Das "kaputte" file wird laut dateieigentschaften immer neu erstellt (erstellt am <aktuelleZeit>, geändert am <aktuelle Zeit>. Beim "guten" file steht erstellt am <XX>, geändert am <aktuelle Zeit>.

    Wenn ich folgendes mache:

    Code
    File checkFile = new File(oldName);
    
    if(checkFile.exists())
    checkFile.delete();

    Ist das File trotzdem da. Also muss es irgendwo anders erstellt werde. Wenn ich die rename Methode jedoch einfach auskommentiere erscheint das verkrüppelte file allerdings nicht. Bin mit meinem latein komplett am ende :(

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!