Verzeichnis/Ordner löschen
-
Hallo,
kann mir vielleicht einer sagen wie man in VC++6 ein gesamtes Verzeichnis, bzw. alle in dem Verzeichnis befindlichen Datei auf einen Rutsch löscht?Gruß
Nils
-
SHFileOperation könnte evtl helfen
-
Jo,
hab vielen Dank. Es funktioniert.
-
Für alle die mit IE nichts zu tun haben wollen (SHFileOperation ist aus dem Internet Client SDK) hier:
void deleteDirectoryR(std::string path) { WIN32_FIND_DATA fd; HANDLE hFile = FindFirstFile((path + "*.*").c_str(), &fd); //Erster Ordner ist immer . // // Wenn der Pfad nicht existiert dann ist // hFile == INVALID_HANDLE_VALUE // while(FindNextFile(hFile, &fd)) { std::string fileName(fd.cFileName); if(!(fileName == ".." || fileName == ".")) { if(fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { std::string nextFolderPath(path); nextFolderPath.append(fileName); nextFolderPath.append("\\"); deleteDirectoryR(nextFolderPath); if(!RemoveDirectory(nextFolderPath.c_str())) { // // ERROR HANDLING // Fehlercode bekommt man mit GetLastError() und // sinnvollen Text dazu mit FormatMessage(...) // (Doku durchlesen) // } } else { if(!DeleteFile((path + fileName).c_str())) { // //ERROR HANDLING // } } } } // // Wichtig! Sonst gibts einen Access Denied Fehler beim Ordner löschen // wenn man aus der Rekursion zurückkommt... // FindClose(hFile); }