Announcement

Collapse
No announcement yet.

Dateidatum vergleichen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Dateidatum vergleichen

    Code:
    DateTime ZT = File.GetLastWriteTime(zielkpl).Date + File.GetLastWriteTime(zielkpl).TimeOfDay;
    DateTime QT = File.GetLastWriteTime(filekpl).Date + File.GetLastWriteTime(filekpl).TimeOfDay;
    int comp = QT.CompareTo(ZT);
    Das Programm scannt den Visual Studio Project-Ordner, entweder auf dem Heim-PC oder im Büro. Alle geänderten Dateien werden auf den USB-Stick kopiert. Dann gibt es das Gegenstück, den Ordner auf dem Stick scannen und alle neueren Dateien auf die Festplatte kopieren. Nach Änderungen dieses Programms kommt es dann dazu, dass die geöffnete Programmdatei auf der Festplatte mit einer aktuelleren Version vom Stick überschrieben werden muss. Das Problem löse ich, indem dann die Zieldatei erst einmal umbenannt wird, später dieses umbenannte Programm gestartet und die alte Version beendet wird. Die neue Version kopiert sich dann wieder auf den Originalnamen. Alles wunderbar.

    Nur kommt es immer wieder dazu, dass das Programm ein Update erkennt, wo keins mehr sein dürfte. Also gestern um 19:46 Uhr hab ich zuhause geändert, auf der Firma nichts an diesem Projekt gemacht, heute spiele ich die Updates von der Firma ein und das Programm erkennt ein Update seiner selber. Ich hab dann mal überprüft: Die Zeiten von ZT und QT liegen um 2 Sekunden auseinander. 19:46:54, 19:46:56. Wie kann das sein?
    Günther

  • #2
    Der Usb-Stick ist vermutlich FAT32 formatiert oder? Anders als NTFS das eine relativ hohe Darstellungsgenauigkeit liegt es bei FAT32 bei eben den genannten 2 Sekunden Genauigkeit. Wenn noch andere Filesysteme beteiligt sind ist das Ergebnis entsprechend unbestimmt.

    Für ein Updateverfahren ist der Timestamp als alleiniges Merkmal denkbar ungeeignet. Was spricht gegen eine richtige Versionsverwaltung oder zumindest eine Synchronisationsverfahren das einen CRC oder Hash benutzt (z.B. Robocopy ist in Windows eingebaut und macht das eigentlich recht ordentlich) ?

    Comment


    • #3
      Es ist halt mein eigenes Programm, da will ich ungern andere Programme nutzen. Die "Synchronisation" ist nur so nebenbei entstanden. Eigentlich nutze ich das Programm um meine Digitalfotos einzulesen.

      Aber das mit der Ungenauigkeit bei FAT32 leuchte mir ein, ich werde dann halt zusätzlich noch die Sekundendifferenz überprüfen. Danke!
      Günther

      Comment

      Working...
      X