Zum Inhalt springen

Eindeutige ID einer Datei ermitteln


Empfohlene Beiträge

Geschrieben

Hallo,

ich habe folgendes Problem. Kann ich irgendwie eine eindeutige Nummer (oder sonst was) erzeugen/ermitteln, die mir eine Datei eindeutig identifiziert? Mein Problem ist, dass ich einen bestimmten Bereich auf der Platte überwachen möchte. Wichtig ist mir, dass ich auch z.B. nach dem Verschieben einer Datei von einem Verzeichnis A in B diese trotzdem über die ID identifizieren kann. Ideal wäre daher auch, wenn sich die ID nicht durch Änderungen/Umbennenen ändern würde. Der Name allein reicht mir leider nicht aus.

Hat jemand eine Idee??

Timo

Geschrieben

Ja, Du kannst eine Hashfunktion (beispielsweise MD5) ueber den Dateiinhalt laufen lassen. Quellcodes sollten sich im Netz mit hilfe von Google zuhauf finden lassen.

Nic

Geschrieben

Wäre ganz schön aufwendig und ausserdem abhängig vom Inhalt. D.h. änderungen im Inhalt = anderer Hashwert = Datei kann nicht mehr nachverfolgt werden....

Timo

Geschrieben

Du willst eine Datei wiedererkennen, obwohl sich der Name, die Position im Dateisystem und der Inhalt geändert haben können? Da bleibt m.M.n nichts übrig, anhand dessen Du die Datei noch eindeutig identifizieren könntest.

Wie wärs mit einem selbstgestrickten Dateisystem?

Geschrieben

Also, wenn ich meine Profs richtig verstanden hatte (damals), dann funktionieren "normale" Dateisysteme so. Unter Unix ist es ja ähnlich. Ob man Windows zu den "normalen" Systemen zählen sollte, das kann ich nicht sagen ;)

Geschrieben

Mit GetFileInformationByHandle bekommt man Zugriff auf eine BY_HANDLE_FILE_INFORMATION-Struktur. Inwieweit die Struktur gefüllt werden kann, hängt vom Dateisystem ab.

Diese Struktur hat mit nFileIndexLow und nFileIndexHigh einen 64Bit-Wert, der die Datei eindeutig identifiziert. Ich kann aber nicht sagen, ob dieser Wert sich nicht ändert, wenn man die Datei umbenennt/ändert/verschiebt. Käme auf einen Versuch an.

Geschrieben

Ich würde mal vermuten, dass sich der Wert ändern, sobald man die Datei "anfasst" (also verschiebt oder kopiert). Laut http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fileref_18j6.asp kann man diese beiden Eintraege verwenden, um zu ermitteln ob eine Anwendung ein und dieselbe Datei mehrmals geöffnet hat. Wenn die Dateien aber an unterschiedlichen Stellen im Filesystem liegen sind sie in diesem Sinne nicht mehr identisch.

Nic

Geschrieben

Fast...

ich habs gerade mal getestet. Die Nummer für eine Datei ermittelt. Datei umbenannt, verschoben = Nummer bleibt immer gleich. Allerdings verändert sie sich, wenn man die Datei verändert. Schade, schade...

Timo

Geschrieben

Bin gerade am überlegen eine Datei anhand des Erstellungsdatums zu identifizieren. Laut Doku. sind das die Millisekunden seit 19xx. Mit einer Auflösung von 10 Millisekunden. Da sollten sich Dateien nicht die selbe Erzeugungszeiten haben :confused:

Was haltet ihr davon, spricht da was dagegen??

Geschrieben

Mich würde mal interessieren, wofür genau Du diese Eigenschaft benötigst. Üblicherweise ist es ja von Interesse, wenn die Datei (inhaltlich) manipuliert wurde. Du scheinst aber nach einer Möglichkeit zu suchen, eine Datei die irgendwann mal erstellt wurde (unabhängig von Veränderungen) wieder identifizieren zu können.

Nic

Geschrieben

Genau,

ich hab das Problem, das ich zu einer Datei zusatzinformationen in einer/mehreren extra Datei(en) ablegen möchte, die ich immer der entsprechenden Datei zuordner können möchte. Allerdings kann es eben vorkommen, das die datei verschoben, umbenannt usw. wird. Der Inhalt interessiert mich quasi überhaupt nicht...

Timo

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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