C/Win32 API Verzeichnis löschen

Hi,

ich habe folgende Methode geschrieben, die alle Dateien/Ordner in einem bestimmten Verzeichnis (d) löschen soll, die nicht im Ordner “s” vorhanden sind. Funktioniert auch soweit ganz gut, nur die leeren Verzeichnisse werden nicht gelöscht. Weiß jemand warum?

	
	HWND handle;
	WIN32_FIND_DATA wfd;
	char dir[strlen(d) + 2];
	strcpy(dir, d);
	strcat(dir, "\\*");
	handle = FindFirstFile(dir, &wfd); // . => ignore
	FindNextFile(handle, &wfd); // .. => ignore
	while (FindNextFile(handle, &wfd)) { // Delete Removed Files
		char sc[strlen(s) + strlen(wfd.cFileName) + 1];
		strcpy(sc, s);
		strcat(sc, "\\");
		strcat(sc, wfd.cFileName);
		char di[strlen(d) + strlen(wfd.cFileName) + 1];
		strcpy(di, d);
		strcat(di, "\\");
		strcat(di, wfd.cFileName);
		if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
			deleteDir(sc, di);
			if (FindFirstFile(sc, &wfd) == INVALID_HANDLE_VALUE) {
				RemoveDirectory(di);
			}
		}
		else {
			if (FindFirstFile(sc, &wfd) == INVALID_HANDLE_VALUE) {
				DeleteFile(di);
			}
		}
	}
}```

Danke!

Verzeichnisse löscht man mit RemoveDir. Müssen aber leer sein vorher.

joa, sind leer … aber weiß jetzt scho gar nicht mehr, für was ich das gebraucht hab :stuck_out_tongue: . Aber danke :wink: