Wie kann ich temporäre Dateien im Ordner Teporäre Internet Files löschen?



  • Du kannst den Ordner der Dateien über die Umgebungsvariablen bestimmen (was glaub u.a. mit der Funktion "getenv" geht).
    Und dann kannst du die Dateien darin mit zum Beispiel DeleteFile (ist das Standard??) löschen...

    So würd ichs zumindest mal angehen...



  • DeleteFile() Funktioniert leider nicht, da index.dat geöffnet, das heißt von WINDOWS gerade benutzt wird...
    Trotzdem Danke!

    Sonja



  • Bei Daten die zum Zeitpunkt von Windows oder Programmen benutzt werden, ist das Löschen (dieser Daten zu diesem Zeitpunkt) sowieso ausgeschlossen, oder?



  • Es geht einfach nicht, basta. Außerdem Crossposting. Bei Hanseln die sich nen Frauennamen geben will aber scheinbar trotzdem jeder antworten...



  • und es geht doch! ich hab mal ein bißchen in der microsoft-dokumentation gestöbert und bin da auf die funktionen

    #include <wininet.h>
    
    FindFirstUrlCacheEntry()
    FindNextUrlCacheEntry()
    DeleteUrlCacheEntry()
    

    gestoßen.



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • SHGetSpecialFolderPath() mit CSIDL_INTERNET_CACHE
    und dann SHFileOperation() mit FO_DELETE



  • Hab auch mal sowas gemacht:

    #include <iostream.h> 
    #include <windows.h>
    #include <stdio.h>
    #include <string.h>
    
    typedef struct _WIN32_FIND_DATA { // Struktur für Find*File
        DWORD dwFileAttributes; 
        FILETIME ftCreationTime; 
        FILETIME ftLastAccessTime; 
        FILETIME ftLastWriteTime; 
        DWORD    nFileSizeHigh; 
        DWORD    nFileSizeLow; 
        DWORD    dwReserved0; 
        DWORD    dwReserved1; 
        TCHAR    cFileName[ MAX_PATH ]; 
        TCHAR    cAlternateFileName[ 14 ]; 
    }; 
    
    WIN32_FIND_DATA wfd;
    HANDLE fHandle;
    
    void delDir(char*);
    char* WholePath;
    char* add(char*,char*, char*);
    
    int main ()
    {
        cout << "Debug: -> Program start\n";
        delDir("C:\\Dokumente und Einstellungen\\Besitzer\\Lokale Einstellungen\\Temporary Internet Files\\");
        delDir("C:\\Dokumente und Einstellungen\\Besitzer\\Lokale Einstellungen\\Temp\\");
        delDir("C:\\Dokumente und Einstellungen\\Besitzer\\Lokale Einstellungen\\Recent\\");
        delDir("C:\\Dokumente und Einstellungen\\Besitzer\\Lokale Einstellungen\\Temporary Internet Files\\Content.IE5\\");
        delDir("C:\\WINDOWS\\Temporary Internet Files\\");
        delDir("C:\\WINDOWS\\Temporary Internet Files\\Content.IE5\\");
        delDir("C:\\WINDOWS\\Cache\\");
        delDir("C:\\WINDOWS\\Temp\\");
        delDir("C:\\WINDOWS\\system32\\dllcache\\");
        cout << "Debug: -> Programm end <-";
    }
    
    void delDir( char *Path)
    {
        int number = 0;
    
        cout << "Debug: - Direction -> " << Path << " <-\n";
    
        fHandle=FindFirstFile(add(Path,"*","file"),&wfd);  // erstes Handle holen, öffnen
    
        FindNextFile(fHandle,&wfd); // zweites überspringen weil :/.
    
        while (FindNextFile(fHandle,&wfd)) // alle Datein durchspielen
        {
            number++;
            if ( remove(add(Path,wfd.cFileName,"file")) == -1 ) // löschen
            {
                if ( RemoveDirectory(add(Path,wfd.cFileName,"path")) == 1 )
                {
                    cout << "Debug: -> Dir successfully deleted <-\n";
                }
                else
                {
                    cout << "Debug - Error -> not deleted file <-\n";
                }
            }
            else
            {
                cout << "Debug: -> File successfully deleted <-\n";
            }
        }
    
        if (number == 0)
        {
            cout << "Debug: - Error -> No file in path <-\n";
        }
        else 
        {
            cout << "Debug: -> End deleting <-\n";
            cout << "Debug: -> Filenumber " << number << " <-\n";
        }
    
        FindClose(fHandle); // Handle abschliessen
    }
    
    char* add( char* Path, char *FileName, char* Search ) // Funktion für String Addition
    {
      WholePath = new char[strlen(Path)+strlen(FileName)+1];  // Länge festlegen
      strcpy(WholePath, Path); // erster String rein kopieren
      strcat(WholePath, FileName); // zweiter String anhängen
      if ( FileName != "*" ) 
      {
        cout << "Debug: - Filename -> " << FileName << "<- searchmode -> " << Search << "\n";
      }
      return WholePath;
      delete []WholePath;
    }
    

    Lg



  • Ob das so clever ist Systemordner zu löschen?



  • Wo wird ein Systemordner gelöscht?


Anmelden zum Antworten