AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi NTFS, FileAge liefert nicht das neue Geändert-Datum, sondern das alte Geändert-Datum
Thema durchsuchen
Ansicht
Themen-Optionen

NTFS, FileAge liefert nicht das neue Geändert-Datum, sondern das alte Geändert-Datum

Ein Thema von hoika · begonnen am 19. Nov 2013 · letzter Beitrag vom 19. Nov 2013
Antwort Antwort
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

AW: NTFS, FileAge liefert nicht das neue Geändert-Datum, sondern das alte Geändert-Da

  Alt 19. Nov 2013, 17:58
Ich würde einen Hash-Wert von dem Dateiinhalt erzeugen lassen und damit vergleichen. Das sollte immer funktionieren
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.684 Beiträge
 
Delphi 5 Professional
 
#2

AW: NTFS, FileAge liefert nicht das neue Geändert-Datum, sondern das alte Geändert-Da

  Alt 19. Nov 2013, 18:11
Ich würde einen Hash-Wert von dem Dateiinhalt erzeugen lassen und damit vergleichen. Das sollte immer funktionieren
Nein, das funktioniert nicht zuverlässig bei MS Office Dokumenten. Grund: Word (und IIRC auch Excel) ändern gern mal den Dateiinhalt, obwohl man das Dokument nur geöffnet und wieder geschlossen hat. Ich gebe zu, dass ich nicht weiß, wie sich MS Office ab Version 2007 verhält (DOCX ist ja nichts weiter als gezipptes XML mit ein bissel Krempel drumrum), aber bis einschließlich Version 2003 ist das so.

Einfacher Test, den jeder selbst durchführen kann: Word-Dokument erstellen und speichern. Dann im Dateimanager eine Kopie davon erzeugen und von beiden Dateien Prüfsummen erzeugen (im Total Commander sind diese Schritte ganz einfach ). Nun eines der Dokumente im Word öffnen und wieder schließen und wieder Prüfsummen erzeugen. Den letzten Schritt muss man u.U. mehrfach wiederholen, aber irgendwann ist der Dateiinhalt ein anderer.

MfG Dalai
  Mit Zitat antworten Zitat
Morphie

Registriert seit: 27. Apr 2008
Ort: Rahden
630 Beiträge
 
#3

AW: NTFS, FileAge liefert nicht das neue Geändert-Datum, sondern das alte Geändert-Da

  Alt 19. Nov 2013, 18:20
Und das Änderungsdatum der Datei wird dann nicht geändert?

Vielleicht ist ein Directory-Monitor (wie man ihn aus .NET kennt: FileSystemWatcher) ja eine bessere Lösung für dich?
http://www.osnews.com/story/7376/A_D..._Delphi/page1/
Der Vorteil wäre, dass man alle Änderungen (auch von Drittprogrammen) mitbekommt.
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.684 Beiträge
 
Delphi 5 Professional
 
#4

AW: NTFS, FileAge liefert nicht das neue Geändert-Datum, sondern das alte Geändert-Da

  Alt 19. Nov 2013, 18:28
Und das Änderungsdatum der Datei wird dann nicht geändert?
Falls du mich meinst: Ja, der Zeitstempel der Datei bleibt identisch; erst beim Speichern des Dokuments setzt Office einen neuen.

MfG Dalai
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.557 Beiträge
 
Delphi 12 Athens
 
#5

AW: NTFS, FileAge liefert nicht das neue Geändert-Datum, sondern das alte Geändert-Da

  Alt 19. Nov 2013, 18:31
Ach ja, das liegt übrigens auch mit daran, daß man in den neueren NTFS-Treibern immer mehr die Schreibzugriffe minimiert hat.
Darum wird/wurde das Last-Access nicht immer gespeichert und vorallem nicht mehr bei Verzeichnissen.

Nein, das funktioniert nicht zuverlässig bei MS Office Dokumenten. Grund: Word (und IIRC auch Excel) ändern gern mal den Dateiinhalt, obwohl man das Dokument nur geöffnet und wieder geschlossen hat.
Die speichern z.B. in der Datei gerne ab, wer wann zu zuletzt darauf zugegriffen hat, und das auch bei Lesezugriffen.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: NTFS, FileAge liefert nicht das neue Geändert-Datum, sondern das alte Geändert-Da

  Alt 19. Nov 2013, 19:00
Hallo,

das Last Access wird schon gespeichert,
aber sehr spät nach außen hin angezeigt.

Ich denke, ich mache das jetzt über TmemoryStream comparemem


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#7

AW: NTFS, FileAge liefert nicht das neue Geändert-Datum, sondern das alte Geändert-Da

  Alt 19. Nov 2013, 19:20
Ich denke, ich mache das jetzt über TmemoryStream comparemem
Dann vielleicht doch lieber die Lösung mit dem Hash, dann brauchst du keine weitere Kopie der alten/heruntergeladenen Datei zu halten.

Aber die Frage mit dem Änderungsdatum bleibt ja.
Wenn ich das richtig verstanden habe, hängt das damit zusammen. Laut der MSDN-Seite zu FindFirstFile sollte es mit GetFileInformationByHandle klappen.
Vielleicht funktioniert es auch mit GetFileAttributesEx?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz