1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Zeitstempel von Ordnern ändern

Discussion in 'Programmieren' started by gert12349, Sep 27, 2002.

Thread Status:
Not open for further replies.
  1. gert12349

    gert12349 Halbes Megabyte

    Der Zugriff wurde verweigert\' und SetFileTime kommt nicht ohne ein gültiges Handle mit Schreibzugriff aus.

    Gruß Gert
     
  2. gert12349

    gert12349 Halbes Megabyte

    Sorry - Kommando zurück.

    Ich sollte mein Gehirn einschalten bevor ich poste :-)
    Geht ja nicht. Dazu gibts ja CreateDirectory. Schade.
    [Diese Nachricht wurde von gert12349 am 03.10.2002 | 12:31 geändert.]
     
  3. gert12349

    gert12349 Halbes Megabyte

    Hallo KazHar,

    das ist auch eine Möglichkeit und sehr wahrscheinlich die bessere, wenn man den 49,7 Tage-Überlauf berücksichtigt. Soll ja schon vorgekommen sein ;-) Ich hätte jetzt die Systemzeit ins FILETIME-Format gewandelt und damit gerechnet.

    Vielleicht funktioniert auch folgendes:

    Mit CreateFile einen neuen Ordner erzeugen, mit SetFileTime die gewünschten Zeiten setzen und anschließend den Inhalt verschieben. Wenn klappt, erspare ich mir den Wirbel um die Systemzeit. Mal sehen.

    Gruß Gert
     
  4. kazhar

    kazhar Viertel Gigabyte

    Hallo Gert!

    Das mit der Systemzeit lässt sich kompensieren! Dafür hat der gute Billy GetTickCount erfunden. Diese praktische Funktion zählt die Millisekunden seit dem letzten Systemstart mit und lässt sich von der System-Uhr nicht beinflussen.

    KazHar
     
  5. gert12349

    gert12349 Halbes Megabyte

    Hey KazHar,

    gut, dass du mich daran erinnerst. Vor ein paar Tagen hatte ich die Idee auch schon. Sie erschien mir nicht sehr verlockend und hatte sie inzwischen wieder vergessen. Super! Das werde ich probieren und bin gespannt, inwiefern sich bei häufigem Gebrauch trotz Berücksichtigung der entstehenden Zeitdifferenz die Systemzeit verschiebt. Heute komme ich nicht mehr dazu.

    Nochmals vielen Dank!

    Gruß Gert
     
  6. kazhar

    kazhar Viertel Gigabyte

    Hallo Gert!

    Also das sich-durch-die-Fat-wurschteln ist nicht unbedingt meine Vorstellung von angenehmer Freizeitbeschäftigung....

    Eine andere Idee: Stelle die Systemzeit auf das gewünschte Datum/Uhrzeit, erstelle einen neuen Ordner, verschiebe den Inhalt des alten Ordners in den neuen, lösche den Alten, benenne den Neuen um und stelle die Systemzeit zurück. --- OK, alles andere als elegant aber immernoch besser als an der Fat zu drehen.

    Grüße KazHar
     
  7. gert12349

    gert12349 Halbes Megabyte

    Guten Morgen KazHar,

    danke dir, ich fühle mich schon viel besser ;-)

    Ich habe mich mal durch die Quelltexte von TFileStream gewurstelt. Du wirst lachen, die sind beim C++Builder in astreinem Delphi Pascal geschrieben. Der Konstruktor von TFileStream verwendet die Funktion FileOpen und die wiederum CreateFile.

    Pech. Vielleicht bleibt nur die Möglichkeit, die Änderungen direkt im Dateisystem zu machen. Werde mich mal genauer mit FAT32 befassen müssen oder warten, bis ME/9x ausstirbt und sich das Problem von selbst erledigt :-) Vorerst werde ich mit den Einschränkungen leben müssen *heul*

    Einen schönen Feiertag
    Gert
     
  8. kazhar

    kazhar Viertel Gigabyte

    s die auch unter C(++), gibt ich schreibe eher in Pascal/Delphi). Diese Klasse enthält natürlich auch das Datei-Handle - allerdings als private; Da müsstest Du drann drehen und eine class MyFileStream weitervererben, die eine Methode beinhaltet, die das Handle zurückgibt. Dann heißt\'s nur noch hoffen, dass der Stream nicht dann doch auf die CreateFile-Methode zugreift...

    viel Erfolg KazHar
     
  9. gert12349

    gert12349 Halbes Megabyte

    Hallo KazHar,

    danke für den Tipp. Ich kann keinen inhaltlichen Unterschied zwischen dem Delphi-Beispiel und meinem Programmcode feststellen. Das scheint eine vom Betriebsystem abhängige Macke zu sein.

    Dein Beispiel bezieht sich auf NT und ich programmiere für ME/98. Laut WinAPI-Hilfe sind die Funktionen CreateFile und SetFileTime für Win95 verfügbar und von irgendwelchen Einschränkungen steht dort nichts. Vermutlich sind die Funktionen unter ME/9x fehlerhaft oder unvollständig implementiert.

    Kennst du eine andere Möglichkeit, an ein Handle für SetFileTime zu kommen?

    Gruß Gert
     
  10. kazhar

    kazhar Viertel Gigabyte

    s garnicht klappen will kompiler\' ich dir eine DLL, die das kann...

    mfg KazHar
     
Thread Status:
Not open for further replies.

Share This Page