Zum Inhalt springen

Verzeichnis auf Datei überprüfen


Oki

Empfohlene Beiträge

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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)

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 :rolleyes:

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

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...