Prüfen ob Datei existiert?
-
Jochen Kalmbach schrieb:
richtig schrieb:
richtig. und es gibt auch noch
fopen
Dies ist aber ganz schlecht, da dadurch die Datei selbst verändert wird!
Verändert?!
-
klatsch schrieb:
flasch schrieb:
Schonmal überlegt ob so eine Abfrage überhaupt Sinn macht?
bevor man ne datei überschreibselt, könnte sich eine abfrage lohnen, wa.
nö, wa
-
umpf! schrieb:
Verändert?!
Ja, die "Access-Time" wird geändert.
Das wird sie z.B. bei einem "dir" bzw. GetFileAttributes/FindFirstFile nicht... (oder täusche ich mich da?)
-
Jochen Kalmbach schrieb:
umpf! schrieb:
Verändert?!
Ja, die "Access-Time" wird geändert.
Das wird sie z.B. bei einem "dir" bzw. GetFileAttributes/FindFirstFile nicht... (oder täusche ich mich da?)
Also ein einfaches Öffnen (CreateFile) bzw. Lesen (ReadFile) ändert den Zeitstempel für den letzten Zugriff nicht.
-
Du musst ein wenig warten, bis sich diese Änderungen zeigen
NTFS hat hier ein "gewissen" Delay! Starte mal den Rechner neu, dann siehst Du die Änderung.
PS: Das wäre ja fürchterlich, wenn sich ein Öffnen nicht auswirken würde. Dann wäre ja der Zeitstempel total sinnlos.
-
Jochen Kalmbach schrieb:
Gästchen schrieb:
MSDN schrieb:
Determines whether a path ... is valid.
Von welchem Doku-Bug redet Ihr?
Von dem fetten....
Die Erklärung, was mit "path to a file system object" gemeint ist, folgt dem doch (a file or a directory). Man muss die Erklärung nur Lesen und nicht mitten im Satz aufhören.
-
Ist Ansichtssache... ich lese trotzdem immer nur von einem *Pfad* und nicht davon, dass nach dem ganzen Objekt gesucht wird!
-
Jochen Kalmbach schrieb:
Du musst ein wenig warten, bis sich diese Änderungen zeigen
NTFS hat hier ein "gewissen" Delay! Starte mal den Rechner neu, dann siehst Du die Änderung.
PS: Das wäre ja fürchterlich, wenn sich ein Öffnen nicht auswirken würde. Dann wäre ja der Zeitstempel total sinnlos.
Oder Du hast Vista
Siehe:
http://computer-forensik.org/2007/11/19/ntfs-lastaccessupdate-unter-vista/
-
Das wäre eine Erklärung. In 10min ist die Stunde abgelaufen, dann wissen wir mehr.
-
Du hast aber *kein* Vista bzw. das Feature ist bei Dir auch aktiviert? (Standard bis Vista).
-
Vista und deaktiviert. Hab's jetzt mal aktiviert, Test muss aber bis morgen früh warten.
-
Jochen Kalmbach schrieb:
Ist Ansichtssache... ich lese trotzdem immer nur von einem *Pfad* und nicht davon, dass nach dem ganzen Objekt gesucht wird!
Zu dem Objekt führt ein Pfad (oder mehrere - Hardlinks etc.)
Dieser Pfad enthält selbstverständlich auch den Dateinamen.Die Doku ist IMO unklar und vielleicht irreführend, aber nicht wirklich falsch. Ändern sollten sie die Beschreibung wahrscheinlich trotzdem.
-
Also bei NtfsDisableLastAccessUpdate=0 wird auch unter Vista der Zeitstempel für die letzte Änderung beim Öffnen einer Datei sofort aktualisiert.
-
Die meisten Anwender/Programmierer/Programme dürfte es doch wohl kaum jucken, wann jemand zuletzt ne Datei geöffnet hat?
Davon mal abgesehen ist für diesen Zweck GetFileAttributes wohl doch am besten, ne.
MfG,
E.
-
Blaze schrieb:
Noch schneller geht das über "Datei-Attribute":
BOOL FileExists(const std::string & StrFilename) { //Schneller: nur Dateiinformationen lesen return( (GetFileAttributes(StrFilename.c_str()) == INVALID_FILE_ATTRIBUTES) ? FALSE //lesen nicht möglich -> Datei existiert nicht! : TRUE); //die Datei existiert }
Aber mal im Ernst, auf Probeöffnen müsstest du doch mindestens gekommen sein
ich hab das von blaze in meinem code übernommen und bin damit sehr zufriden ...die 4000 dateien checkt er in knapp 3 sec durch und gut is
lg karma