![]() |
AW: dwReserved1 nutzen?
Zitat:
Speichern könntest du die Werte aber ohnehin nicht, da du die Datenstruktur nur zum Auslesen bekommst. |
AW: dwReserved1 nutzen?
Wenn irgendwo "Reserved" dran steht, dann sollte man diese Felder imho nicht für eigene Zwecke missbrauchen. Falls das überhaupt möglich ist.
Frage: was soll dein Programm denn machen, wenn der User eine Datei außerhalb deines Programms verschoben hat und der Datenbankeintrag daher ungültig geworden ist? Soll dann die ganze Festplatte nach einer Datei durchsucht werden, die der in der DB entspricht? Und wenn der Anwender an der Ordnerstruktur was ändert, dann wird diese Suche für hunderte oder gar zig-tausende Dateien durchgeführt? Ich denke, dass das dem Anwender klar sein sollte: Wenn man ein Dateiverwaltungstool nutzt, und die Dateien außerhalb des Tools verschiebt oder umbenennt, dann muss man im Anschluss die Dateien neu von dem Tool suchen lassen. Da einen Automatismus zu erwarten, halte ich für eine stark überzogene Anwender-Anforderung. Wenn dein Tool zusätzliche Informationen zu den Dateien speichert (die ggf. auch vom Anwender bearbeitet werden können), dann gehören diese Infos imho in die Metadaten der Datei. Zumindest solange die Dateien dadurch nicht zu sehr aufgebläht werden. Für eine eindeutige ID sollte da aber auf jeden Fall Platz sein. Oder halt alternative Wege, die (wahrscheinlich) bei den üblichen Verzeichnis-Aktionen erhalten bleiben. Alternative Datenströme an den Dateien, oder je eine versteckte "Info-Datei" pro Verzeichnis. Eine 100%ige Garantie dafür, dass die Infos erhalten bleiben, gibt es aber natürlich nicht. Bei mp3 sind die ID3-Tags z.B. oft voll mit "Private Frames" vom Windows Media Player, iTunes und anderen, die dann von der jeweiligen "Datenbank" dahinter benutzt werden. Amazon nutzt z.B. das Kommantar-Feld für eine eindeutige Song-ID, und in einem speziellen Private-Frame werden afaik u.a. verschlüsselt Informationen zum Käufer gespeichert. Filesharing von Amazon-Mp3s ist daher eine ganz blöde Idee. ;-) Die Tag-Formate in anderen Audio-Dateitypen können ebenso dazu genutzt werden. |
AW: dwReserved1 nutzen?
Ich fand im Netz folgendes:
dwReserved0 Wenn das dwFileAttributes-Element das attribut FILE_ATTRIBUTE_REPARSE_POINT enthält, gibt dieses Element das Reparsepunkttag an. Andernfalls ist dieser Wert nicht definiert und sollte nicht verwendet werden. Wenn ihr recht hättet, wäre ja jeder Dateisystemeintrag mit FILE_ATTRIBUTE_REPARSE_POINT 4 Byte länger als einer ohne. Und bei Änderung des Attributs würde der Eintag entweder kürzer oder länger. Kann das wirklich sein? e-gon |
AW: dwReserved1 nutzen?
Zitat:
e-gon |
AW: dwReserved1 nutzen?
Zitat:
|
AW: dwReserved1 nutzen?
Zitat:
Zitat:
Zitat:
Werde mir die Datenstöme nochmals genauer anschauen. Danke für die vielen hilfereichen Beiträge! e-gon |
AW: dwReserved1 nutzen?
Gern nochmal:
Dieser Record hat garnichts mit der Speicherung auf der Festplatte gemeinsam. * bei NTFS gibt es einmal einen Eintrag in der MasterFileTable, aber auch nochmal klassische Dateiverzeichnislisten, wie im FAT * bei FAT32 liegen die Dateiinfos in einem FATRecord des Verzeichnisses, zusammem mit dem ShortFileName ... während der LongFileName einen oder mehrere "andere" FAT-Records in diesem Verzeichnis belegt, was dann beim Suchen zusammenkopiert wird. Rate mal, warum es keine Funktion gibt, um diesen Such-Record wieder im Dateisystem zu speichern. |
AW: dwReserved1 nutzen?
Zitat:
Wenn Du sowieso im Hintergrund nach verschobenen Dateien suchst, wäre es wohl (wie himitsu vorschlägt) am besten, einen Hash-Wert zu merken, um die Dateien wiederzuerkennen. Die Hash-Werte müssen ja nur für neu hinzugekommene (oder umbenannte Dateien zum Vergleich) ermittelt werden. Das kann auch im Hintergrund laufen. |
AW: dwReserved1 nutzen?
Es gibt die Möglichkeit, einen Fingerprint der Rohdaten zu machen. Dafür müsste man die Rohdaten aus der Datei herausholen. Und dafür braucht man tiefe Kenntnisse jedes unterstützten Dateiformats. Und scheitert doch bei Duplikaten.
|
AW: dwReserved1 nutzen?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:48 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