Hi,
Ich hab folgende Aufgabenstellung.
Ein Programm in C++. Über Kontextmenü (rechtsklick auf ein (oder mehrere) Verzeichnis sollen diese inkl Unterverzeichnisse durchsucht werden und das letzte Datum einer Datei auf das Verzeichnis gesetzt werden. Dabei sollte es möglich sein über eine Konfiguration Dateien auszuschließen z.b. *.nfo. Das ganze muss dabei noch Unicode fähig sein
z.b.
\\Desktop
test.txt (änderungsdatum 23.01.2010)
\\Desktop\\test\\
test2.txt (änderungsdatum 02.02.2009)
Rechtsklick auf Desktop ändert das Datum des Verzeichnisses test auf 02.02.2009 und Desktop auf 23.01.2010
Bisher sieht meine Lösung so aus das ich auf Funktionen von WinApi zurückgreife:
GetFileTime(), CompareFileTime() und dann das Verzeichniss so durchsuche:
Gibt es hierfür elegantere Lösungen? Weil gerade um diese Funktion rekursiv zu machen um auch die Unterverzeichnisse zu durchsuchen reicht cFileName nicht aus da dieses nur den Dateinamen ausgibt. Man müsste also Strings zusammen stückeln um den gesamten Pfad übergeben zu können.
Die Andere Frage wäre wie man den Verzechnispfad über Kontextmenü als Parameter später übergeben kann.
Über Hilfe würde ich mich freuen.....
Ich hab folgende Aufgabenstellung.
Ein Programm in C++. Über Kontextmenü (rechtsklick auf ein (oder mehrere) Verzeichnis sollen diese inkl Unterverzeichnisse durchsucht werden und das letzte Datum einer Datei auf das Verzeichnis gesetzt werden. Dabei sollte es möglich sein über eine Konfiguration Dateien auszuschließen z.b. *.nfo. Das ganze muss dabei noch Unicode fähig sein
z.b.
\\Desktop
test.txt (änderungsdatum 23.01.2010)
\\Desktop\\test\\
test2.txt (änderungsdatum 02.02.2009)
Rechtsklick auf Desktop ändert das Datum des Verzeichnisses test auf 02.02.2009 und Desktop auf 23.01.2010
Bisher sieht meine Lösung so aus das ich auf Funktionen von WinApi zurückgreife:
GetFileTime(), CompareFileTime() und dann das Verzeichniss so durchsuche:
Code:
WIN32_FIND_DATA wfd;
HANDLE fHandle;
wchar_t * fdir = L"d:\\test\\*";
fHandle=FindFirstFile(fdir, &wfd);
FindNextFile(fHandle,&wfd);
while (FindNextFile(fHandle,&wfd))
{
if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
//wcout << x;
//SearchDir2(x);
// Datei ist keine, sondern ein Verzeichnis...
// Hier könnte man dasselbe nochmal machen, um auch die
// Unterverzeichnisse zu scannen
}
else
{
//Datei wfd.cFileName gefunden
}
}
FindClose(fHandle);
Gibt es hierfür elegantere Lösungen? Weil gerade um diese Funktion rekursiv zu machen um auch die Unterverzeichnisse zu durchsuchen reicht cFileName nicht aus da dieses nur den Dateinamen ausgibt. Man müsste also Strings zusammen stückeln um den gesamten Pfad übergeben zu können.
Die Andere Frage wäre wie man den Verzechnispfad über Kontextmenü als Parameter später übergeben kann.
Über Hilfe würde ich mich freuen.....