Autor Beitrag
Stilfser
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Di 23.09.03 18:30 
Hi da draußen,

Gibt es eine Möglichkeit, einer Datei eine Versionsnummer oder etwas ähnliches zuzuordnen?
Eine erste Idee wäre, mit FileSetDate eine Art Versionsnummer zu kreieren, aber leider setzt FileSetDate nur das "Zuletzt geändert"-Datum. Wenn aber der Benutzer diese Dateien verändern kann, sind sie nicht mehr einer Version zuzuordnen.
Man könnte statdessen vielleicht das Erstellungsdatum einer Datei setzen, nur wie geht das?
MSCH
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: Di 23.09.03 19:06 
es gibt imho leider kein Fileformat welches Versionen unterstützt ohne eine Anwendung dazu zu benutzen. NTFS kann zwar Änderungs- Erstellungs- und Zugriffsdatum setzen, allerdings readOnly. Da wirst du dir wohl was einfallen lassen müssen.
grez
msch

_________________
ist das politisch, wenn ich linksdrehenden Joghurt haben möchte?
patrick
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1481

WIN2k, WIN XP
D6 Personal, D2005 PE
BeitragVerfasst: Mi 24.09.03 09:31 
dir wird wohl nicht anderes übrig bleiben als ein eigenes format zu konstrueieren und nen header mit versionsangabe für die datei zu schreiben.
ne andrere möglichkeit wäre vielleicht die version direkt in dn dateinamen zu intgrieren:
ausblenden Quelltext
1:
testdatei 1-24-23-2.txt					

_________________
Patrick
im zweifelsfall immer das richtige tun!!!
mb
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 185



BeitragVerfasst: Mi 24.09.03 09:47 
AFAIK kann man aber doch das Erstellungsdatum einer Datei ändern; warum sollte es auch nicht gehen.

Zum einen kann man unter Windows die Funktion deaktivieren, dass der letzte Zugriff überhaupt gespeichert wird. Dann änderst Du mit den normalen Dateifunktionen auch automatisch das Erstellungsdatum. Aber das hilft Dir ja wenig, weil dann bei einer Änderung auf die "Versionsnummer" wieder hinüber wäre.

Zum einen kannst Du das Dateidatum (DOS-Datum) über die Funktion FileAge besorgen
ausblenden Quelltext
1:
DOSDate := FileAge(FileName);					

zum anderen via FindFirst, FindNext über TSearhRec:
ausblenden Quelltext
1:
2:
3:
var SR: TSearchRec;
...
FileDate := FileDateToDateTime(SR.Time);



Ob ich noch besseren/ausführlicheren Code bei mir finde... mal sehen.

_________________
Gruß,
MB
mb
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 185



BeitragVerfasst: Mi 24.09.03 09:53 
Also, es sollte definitiv möglich sein, das Erstellungsdatum zu ändern. Ich finde gerade keinen eigenen Code dazu, aber erinnere mich dumpf, wie es ging:

1. DOS-Datum als TFileTime holen

2. Datei mit Handle := FileOpen(...) öffnen

3. Datum mit SetFileTime(...) anpassen/setzen (Erstellungsdatum!)

4. Datei mit FileClose(Handle) schließen

So in etwa sollte es funktionieren.

Ansonsten: Eigenes Dateiformat entwerfen; oder Datei in Wrapper-Format einpacken.... exe-, dll-, ... und andere files unterstützen ja auch bereits Versionen. Auf diese Infos kann man natürlich auch zugreifen

_________________
Gruß,
MB