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); 
    }
    

Anmelden zum Antworten