Oki Geschrieben 1. September 2005 Teilen Geschrieben 1. September 2005 Auf einem Server wird täglich in einem bestimmten Zeitraum, aber kein bestimmter Zeitpunkt eine .bak Datei erstellt. Jetzt bin ich dabei und wollte ein Programm mit Java programmieren, dass die ganze Zeit überprüft, ob in dem Verzeichnis eine NEUE .bak datei erstellt wurde und diese dann in ein anderes Verzeichnis kopiert. Das kopieren sollte nicht das Problem sein, jedoch habe ich keinen Ansatz für die Überprüfung. Im Dateinamen steht übrigens das Datum wann die Datei erstellt wurde. Kann mir jemand einen Ansatz liefern, wie ich diese Überprüfung machen kann? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_Newlukai Geschrieben 1. September 2005 Teilen Geschrieben 1. September 2005 Da Du also weder weißt, wie die Datei genau heißt, noch wo sie genau liegt, führt wohl kein Weg an einem Festplatten-Scan vorbei. Du besorgst Dir ein File-Objekt auf das übergeordnete Verzeichnis/Laufwerk und prüfst alle enthaltenen Dateinamen auf ein definiertes Muster. Und das machst Du rekursiv für alle enthaltenen Verzeichnisse. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Schiller256 Geschrieben 1. September 2005 Teilen Geschrieben 1. September 2005 Welches OS verwendest du? Das Problem würde ich nicht mit Java lösen wenn es nur um das reine kopieren von der Datei geht. Ich würde da eine Scriptsprache vom System nehmen. Also unter Linux ein kleines Script was die Datei kopiert. Das Script wird dann in die cron aufgenommen und dann wird es jede Stunde/ Minute gebrüft ob die Datei da ist. Auch ist es möglich das Script zu starten wenn der Prozess beendet ist der die .bak erzeugt hat. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Oki Geschrieben 1. September 2005 Autor Teilen Geschrieben 1. September 2005 Die .bak Dateien werden immer im selben Verzeichnis gespeichert. Also weiß ich auch wo sie sind. Die Dateien haben immer den selben Anfang und die selbe Endung. Nur das das Datum das im Namen steht anders ist. Ich weiß jetzt nicht, wie ich überprüfen kann dass eine neue .bak datei hinzugekommen ist. Wie man ein Verzeichnis ausliest über ein File Objekt und wie man überprüfen kann ob eine BESTIMMTE Datei existiert weiß ich auch. Nur wie kann ich überprüfen, dass eien aktuelle Datei hinzugekommen ist? -edit- @Schiller256, ich habe die Aufgabe von meinem Chef bekommen es mit Java zu machen (bin noch Azubi) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
perdian Geschrieben 1. September 2005 Teilen Geschrieben 1. September 2005 ob in dem Verzeichnis eine NEUE .bak datei erstellt wurde [...] jedoch habe ich keinen Ansatz für die Überprüfung.Du erstellst dir ein File Objekt auf dein Verzeichnis, damit hast das übergeordnete Directory, innerhalb dessen du regelmäßig nach neuen Dateien suchst. Als Ansätze: File(String pathname) Creates a new File instance by converting the given pathname string into an abstract pathname. File#listFiles() Returns an array of abstract pathnames denoting the files in the directory denoted by this abstract pathname. Wenn du schon weisst, wie die Datei heisst: File#exists() Returns the time that the file denoted by this abstract pathname was last modified. Wenn du das Änderungsdatum haben willst: File#lastModified() Tests whether the file or directory denoted by this abstract pathname exists. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
perdian Geschrieben 1. September 2005 Teilen Geschrieben 1. September 2005 Nur wie kann ich überprüfen, dass eien aktuelle Datei hinzugekommen ist?Du musst definieren und nachhalten, was neu für dich bedeutet. Entweder du betrachtest alle Dateien, die überhaupt im Verzeichnis existieren als neu und verschiebst die Dateien, sobald sie verarbeitet sind in ein Archiv-Verzeichnis, oder aber du merkst dir den Zeitpunkt deines letzten Checks und überprüfst nur Dateien, die nach diesem letzten Check geändert worden sind. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Oki Geschrieben 1. September 2005 Autor Teilen Geschrieben 1. September 2005 Naja, es soll täglich immer eine .bak datei kopiert werden. Die anderen bleiben unagerührt in dem Verzeichniss. D.h. ich muss mir wie du sagtest den Zeitpunkt merken, wann die letzte Datei erstellt wurde. Aber ich glaube mit der lastModified kann ich da schon was machen. Danke schonmal für die Hilfe. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
waterhouse533-lp Geschrieben 1. September 2005 Teilen Geschrieben 1. September 2005 Hallo Oki, du weisst doch ganz genau, wie die datei heist. foobarAKTUELLESDATUM.bak Suche nach der Datei entweder um 23.59 oder meinetwegen minütlich und kopiere sie. Wo ist das Problem? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Oki Geschrieben 1. September 2005 Autor Teilen Geschrieben 1. September 2005 Ich weiß halt nicht ganz genau wie dei Datei heißt. Das aktuelle Datum ist die unbekannte. Die Datei heißt z.b. db_200508310602.bak Nur wird die Datei irgendwann innerhalb einer Stunde erstellt und ich muss genau diese aktuelle Datei aus den ganzen anderen .bak dateien die an Tagen zuvor erstellt wurden herrausfiltern und kopieren. Ich habe mal eine Treemap erstellt und und diese nach lastModified sortiert. Nur irgendwie bringt mich das jetzt auch nicht weiter, da ich nicht weiß wie ich den nu sagen soll, dass er nach eienr Datei suchen soll, die neuer ist als die letzte vom vorigem Tag Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_Newlukai Geschrieben 1. September 2005 Teilen Geschrieben 1. September 2005 Man könnte doch auch das aktuelle Datum abfragen und mit RegEx die Dateinamen abgleichen?!? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
speedi Geschrieben 1. September 2005 Teilen Geschrieben 1. September 2005 Du speicherst ja eine Version immer als save irgendwo auf deiner Platte ab. Also könntest du auch einfach die Datei vom Server Zeile für zeile mit der von der Platte abgleichen. Je nach größe der Datei halt häufiger oder seltener. Wäre bissl irrsinnig ne 5 GB Datei alle 30 minuten abzugleichen. Tja und wenn die Datei die selbe ist dann ziehst sie halt rüber. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etreu Geschrieben 1. September 2005 Teilen Geschrieben 1. September 2005 Die Dateinamen sind doch alle Strings. Also kannst du sie alphabetisch sortieren. Die Reihenfolgen der Zahlen bleibt erhalten. Also ist db_200508310602.bak "kleiner" als db_200509010602.bak. Dann nimmst du das letzte Element der sortierten Liste und machst was immer du willst. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
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.