Datei atribute
-
Hab da ein kleines Problem:
Ich will die Dateiatribute mit C++ auslesen und ändern. Also ich habe eine Datei. Diese wurde zu einem bestimmten Zeitpunkt erstellt. Nun will ich diese Erstellungszeit auslesen und eine neue Datei erstellen die das gleiche erstellungsdatum hat. Wir kann man das ereichen?
-
Hmm, da wirst du ohne WinAPI nicht auskommen.
Verschoben nach WinAPI.
MfG SideWinder
-
Die Funktion dafür lautet SetFileTime():
SetFileTime( hFile, // Handle der Datei lpCreationTime, // Pointer auf FILETIME-Struktur, wann die Datei erstellt wurde NULL, // in deinem Fall egal NULL); // in deinem Fall egal
-
Und wie lese ich das Datum aus ???
Und kann ich FILETIME-Strukturen irgendwie vergleichen?
Möchte ein proggi erstellen das alle neuen Dateien (seit letztem einschalten) auf ein Netzlaufwerk kopiert ...
Gruss SeCa
-
mit WIN32_FIND_DATA,FindFirstFile und FindNextFile
-
Hallo
erstmal danke für die antwort .Ich habe jetzt folgende funktion zusammengeschrieben:
#include "stdafx.h" #include <windows.h> #include <stdio.h> int GetDateOfLastChange(char* FileName){ LPWIN32_FIND_DATA FileEigenschaften; FindFirstFile(FileName,FileEigenschaften); FILETIME lastAccess = FileEigenschaften->ftLastWriteTime; LPSYSTEMTIME lastAccessSys; FileTimeToSystemTime(&lastAccess, lastAccessSys); printf("%w",lastAccessSys->wYear); return 0; }und ich führe die funktion mit
GetDatOfLastChange("D:\");
aus.Jetzt hat er aber in dieser Zeile:
FILETIME lastAccess = FileEigenschaften->ftLastWriteTime;
einen Runtime-Fehler.
Wisst ihr was hier das problem ist?
Danke
-
Probiers mal so:
int GetDateOfLastChange(char* FileName) { WIN32_FIND_DATA FileEigenschaften; HANDLE hFile = FindFirstFile(FileName, &FileEigenschaften); FindClose(hFile); SYSTEMTIME lastAccessSys; FileTimeToSystemTime(&FileEigenschaften.ftLastWriteTime, &lastAccessSys); cout << lastAccessSys.wYear; return 0; }Und ruf die Funktion mal mit "D:\\datei.txt" (z.B.) auf.
Edit: Könntest auch noch über die WIN3_FIND_DATA überprüfen, ob das Handle beispielsweise ein Verzeichnis ist.
[ Dieser Beitrag wurde am 18.06.2003 um 11:41 Uhr von Honk editiert. ]
-
Wie kann man mit C++ das Erstelldatum für Ordner unter Windows 95-98-ME nachträglich ändern ?
Ab Windows NT gibt es ja eine Möglichkeit in der MSDN mit Create File, um das Handle für den Ordner zu erhalten.