Creationtime von directory unter c
ms88
- sonstiges
0 dedlfix
0 ms88
0 Blaubart0 Jens Holzkämper
Hi,
Ich benötige von einem Ordner das Erstellungsdatum als Timestamp.
Unter linux reichte der Aufruf von stat, unter windows gibt es dies anscheinend nicht und ich benötige jetzt etwas, das mir unter windows von einem Ordner das modification bzw erstellungsdatum als timestamp zurückliefert.
Sprache: C
ich hab bisschen gesucht und bin auf getfiletime gestoßen
dir = opendir(path);
i = 0;
// store elements
if (dir != NULL) {
while((ent = readdir(dir)) != NULL) {
strcpy(dest, path);
if (strcmp(ent->d_name, ".") == 0 || strcmp(ent->d_name, "..") == 0) {
continue;
}
LPFILETIME creation;
strcat(dest, ent->d_name);
printf("%s\n", dest);
if (!GetFileTime(dest, &creation, NULL, NULL)) {
printf("ERROR\n");
}
leider komm ich immer in den ERROR zweig, jemand einen tipp oder idee?
lg
Tach!
strcat(dest, ent->d_name);
printf("%s\n", dest);
if (!GetFileTime(dest, &creation, NULL, NULL)) {
leider komm ich immer in den ERROR zweig, jemand einen tipp oder idee?
Laut Dokumentation möchte diese Funktion als erstes ein File-Handle haben. Du scheinst ihr allerdings einen String zu übergeben.
Eine Suche nach "windows getfiletime" liefert bei mir neben der Beschreibung gleich als zweites winapi - How to get file time by name in windows?
dedlfix.
Hi danke für eure Antworten war einacher als gedacht
_stat heißt es unter windows und hat selben einträgen in der struct:
http://msdn.microsoft.com/en-us/library/14h5k7ff%28v=vs.80%29.aspx
lg martin
Tach.
LPFILETIME creation;
strcat(dest, ent->d_name);
printf("%s\n", dest);
if (!GetFileTime(dest, &creation, NULL, NULL)) {
printf("ERROR\n");
>
> leider komm ich immer in den ERROR zweig, jemand einen tipp oder idee?
Allgemeiner Tip: GetLastError() benutzen, um mehr über den Fehler zu erfahren.
In Deinem Fall dürfte das Problem sein, daß GetFileTime() ein file handle erwartet, Du aber den Dateinamen reinsteckst.
--
Always remember that you are unique. Just like everybody else.
Tach,
Ich benötige von einem Ordner das Erstellungsdatum als Timestamp.
Unter linux reichte der Aufruf von stat,
nein, Linux speichert den Erstellungszeitpunkt nicht, dass der Wert ctime heißt, legt das zwar nahe, aber das ist das letzte Änderungsdatum des Inodes nicht das Erstellungsdatum des Verzeichnisses; letztere ändert sich z.B. wenn die Dateirechte neu gesetzt werden.
mfg
Woodfighter