Date / Time von einem Verzeichnis ändern ? [erledigt]

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12909
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Date / Time von einem Verzeichnis ändern ? [erledigt]

Beitrag von AUGE_OHR »

es gibt doch die API Function SetFileTime() in Kernel32.DLL
Das funktioniert auch mit Files aber nicht mit Ordnern ?

Code: Alles auswählen

FUNCTION SetFileTime(cFile, aTime)
LOCAL cCreation := aTime[1], cAccess := aTime[3], cWrite := aTime[3]
LOCAL nKernel32Dll:=DllLoad("Kernel32.dll")
LOCAL nh

   nH := FOPEN(cFile, FO_WRITE+FO_SHARED ) // funktioniert nicht mit Directory ?
   If nKernel32Dll > 0 .AND. nH # -1
      DllCall(nKernel32Dll, DLL_STDCALL, 'SetFileTime', nH, @cCreation, @cAccess, @cWrite)
      DllUnload(nKernel32Dll)
   EndIf

   IF nH # -1
      FCLOSE(nH)
   ENDIF

RETURN NIL
wie bekomme ich das Handle von einem Ordner ?
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12909
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Re: Date / Time von einem Verzeichnis ändern ? [erledigt]

Beitrag von AUGE_OHR »

scheinbar mit FOPEN() gar nicht ... siehe http://www.xbaseforum.de/viewtopic.php?f=16&t=8835
gruss by OHR
Jimmy
Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1991
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Date / Time von einem Verzeichnis ändern ? [erledigt]

Beitrag von Herbert »

Warum sollte man so was tun?
Falls doch - Verzeichnis löschen und neu anlegen... eventuellen Inhalt vorher wegkopieren und anschliessend wieder zurückholen.
Grüsse Herbert
Immer in Bewegung...
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9367
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 102 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Date / Time von einem Verzeichnis ändern ? [erledigt]

Beitrag von Tom »

Nein, mit FOpen() lassen sich keine Verzeichnisse "öffnen". Du müsstest CreateFile aus der API verwenden:

https://msdn.microsoft.com/en-us/librar ... 85%29.aspx
Herzlich,
Tom
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12909
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Re: Date / Time von einem Verzeichnis ändern ? [erledigt]

Beitrag von AUGE_OHR »

Herbert hat geschrieben:Warum sollte man so was tun?
Falls doch - Verzeichnis löschen und neu anlegen... eventuellen Inhalt vorher wegkopieren und anschliessend wieder zurückholen.
neue SSD eingebaut und die Verzeichnisse von der alten auf die neue kopiert. Dabei wurde für all diese Verzeichnisse das aktuelle Datum verwendet obwohl die Dateien "drin" ein anderes Datum haben.
gruss by OHR
Jimmy
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9367
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 102 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Date / Time von einem Verzeichnis ändern ? [erledigt]

Beitrag von Tom »

Ein Verzeichnis wird ja auch nicht kopiert, sondern immer nur - z.B. innerhalb eines Kopiervorgangs - angelegt (Datum und Uhrzeit blieben nur gleich, wenn Du in eine bestehende und gleiche Struktur hineinkopieren würdest). Dass ein Verzeichnis die gleichen Eigenschaften wie eine Datei haben kann oder zu haben scheint, ist letztlich ein alter Kniff, der schon mit den Vorgängern der ersten FAT eingeführt wurde, um Dateiverwaltung und (später hinzugekommene) Verzeichnisse möglichst einfach und konsistent verwalten zu können. Und um ähnliche Aktionen wie Copy, Delete, Rename usw. möglichst simpel abbilden zu können. Trotzdem ist es nicht dasselbe. Ein Verzeichnis ist nur ein Eintrag, eine Datei besteht aus einem Eintrag und Daten. Und nur Daten werden kopiert, Verzeichnisse nicht.
Würde ich mal sagen.
Herzlich,
Tom
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12909
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Re: Date / Time von einem Verzeichnis ändern ? [erledigt]

Beitrag von AUGE_OHR »

Tom hat geschrieben:Ein Verzeichnis wird ja auch nicht kopiert, sondern immer nur - z.B. innerhalb eines Kopiervorgangs - angelegt
JA klar.
Tom hat geschrieben:(Datum und Uhrzeit blieben nur gleich, wenn Du in eine bestehende und gleiche Struktur hineinkopieren würdest).
ok dann mal mit "löschen" ...
ich habe alle *.BAK gelöscht und damit bekommt das Verzeichnis Datum/Uhrzeit von dem Lösch-Vorgang obwohl die Dateien "im" Verzeichnis ein älteres Datum haben.
gruss by OHR
Jimmy
Antworten