IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Delphi Discussion :

Supprimer fichier dans cache Internet Explorer


Sujet :

Delphi

  1. #1
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut Supprimer fichier dans cache Internet Explorer
    Bonjour

    Je cherche durant des heures et patine un max

    Mon but est de simplement supprimer un de mes fichiers en .txt dans ...\Temporary Internet Files\'

    (Histoire de manip de mise à jour)

    Or, il semblerait que tous les fichiers dans ce dossier spécial soient "invisibles".

    J'ai aussi trouvé une source avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DeleteURLCacheEntry(PAnsiChar(PathFile));
    Mais toujours impossible de supprimer ce fichier.

    Le genre de problème que l'on juge "basic" et qui...

    Merci d'avance de vos idées

    Edit : Lorsque je "ping" par exemple via un FileExists, ça ne trouve pas le fichier.
    Si je regarde dans "Propriétés" de ce fichier (en cache IE) il est nommé avec un "[1.].txt" à la fin. Même si je rectifie de nom pour un Delete(...) [etc. !] , ça foire = fichier inconnu au bataillon.
    Par contre si je "ping" le dossier (caché) d'Internet Temporary Files, hé bien c'est ok, il est visible.
    J'ai vu et je sais qu'il existe des procédures pour cleaner TOUT le contenu du cache en question, mais je ne souhaite pas intervenir sur les autres fichiers.
    Donc je ne sais toujours pas comment supprimer un seul... fichier

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 263
    Points
    3 263
    Par défaut
    Salut Droïde,

    Voici un Zip qui contient du code pour vider carrément :
    1 - la corbeille
    2 - l'historique
    3 - les Cookies
    4 - les fichiers temporaires internet
    5 - la liste des fichiers récemment consultés
    6 - les vieilles données du Prefetch
    7 - le dossier Temp
    8 - Ou n'importe quel autre dossier
    ... Mais faire gaffe : Actions irréversibles ça vide les dossiers quel que soit leur contenu (*.txt, *.jpg, et tous les autres formats);

    Par contre à côté de chaque rubrique il y a un bouton 'VOIR' histoire de voir ce qu'on va détruire avent de détruire.

    Si tu veux uniquement détruire le fichier 'FichierADetruire.txt' dans le dossier des fichiers temporaires internet il faut modifier la routine suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    procedure DeleteIECache; // Supprimer les Temporary Internet Files
    var       lpEntryInfo : PInternetCacheEntryInfo;
              hCacheDir   : LongWord;
              dwEntrySize : LongWord;
    begin
              dwEntrySize := 0;
              FindFirstUrlCacheEntry(nil, TInternetCacheEntryInfo(nil^), dwEntrySize);
              GetMem(lpEntryInfo, dwEntrySize) ;
              if dwEntrySize > 0 then lpEntryInfo^.dwStructSize := dwEntrySize;
              hCacheDir := FindFirstUrlCacheEntry(nil, lpEntryInfo^, dwEntrySize);
              if hCacheDir <> 0 then begin
                repeat
                   if (pos('Cookie:gg@www.developpez.net',lpEntryInfo^.lpszSourceUrlName)=1)
                   or (pos('Cookie:gg@www.lesite.com',lpEntryInfo^.lpszSourceUrlName)=1)
                   then Continue
                   else begin
                        DeleteUrlCacheEntry(lpEntryInfo^.lpszSourceUrlName);
                        FreeMem(lpEntryInfo, dwEntrySize);
                        dwEntrySize := 0;
                        FindNextUrlCacheEntry(hCacheDir, TInternetCacheEntryInfo(nil^), dwEntrySize);
                        GetMem(lpEntryInfo, dwEntrySize) ;
                        if dwEntrySize > 0 then lpEntryInfo^.dwStructSize := dwEntrySize;
                   end;
                until not FindNextUrlCacheEntry(hCacheDir, lpEntryInfo^, dwEntrySize);
              end;
              FreeMem(lpEntryInfo, dwEntrySize);
              FindCloseUrlCache(hCacheDir);
    end;
    .... avec les lignes suivantes :
    if (pos('Cookie:gg@www.developpez.net',lpEntryInfo^.lpszSourceUrlName)=1)
    or (pos('Cookie:gg@www.lesite.com',lpEntryInfo^.lpszSourceUrlName)=1)
    then Continue
    j'évite de détruire les deux fichiers cités.
    Donc pour ne détruire qu'un seul fichier il faut que le 'Continue' s'active pour tous les autres fichiers c'est à dire lorsque :
    if (pos('FichierADetruire.txt',lpEntryInfo^.lpszSourceUrlName)=0)
    then Continue

    A+.
    Fichiers attachés Fichiers attachés
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  3. #3
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Salut Gilbert

    Merci de ton aide, c'est très sympa.

    Oui mais as-tu prévu la façon de supprimer Un seul fichier en cache IE ?

    Car là seul est mon but.

    J'ai passé des heures sur le web à tenter de trouver cette infos, je pensais avoir trouvé cela à deux ou trois endroits, mais ça s'est terminé en eau de boudin.


  4. #4
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Gilbert, c'est de la dynamite ton truc

    Je regarde si je peux "mettre en cible" de la méthode cleanant tout le cache IE ; un seul fichier.

    @+

    Edit : j'admire ta procédure DeleteIECache, mais je ne pense pas pouvoir la modifier dans les règles afin de supprimer qu'un seul fichier là ça me dépasse un peu.

  5. #5
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 263
    Points
    3 263
    Par défaut
    Re-salut Droïde,

    mais je ne pense pas pouvoir la modifier dans les règles afin de supprimer qu'un seul fichier
    Je viens de compléter mon message précédent pendant que tu rédigeais les tiens.

    J'y ai ajouté une indication pour ne supprimer qu'un seul fichier. Je te laisse faire la modif.

    A+.
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  6. #6
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Nous claviotions ensemble alors

    Whaouuuu Gilbert

    Je regarde ça...

  7. #7
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Gilbert,



    oufffffff car ça me bloquait !

    Impec, je n'y croyais plus ; affaire résolue.

    Merci encore !

    @+

  8. #8
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 425
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 425
    Points : 1 326
    Points
    1 326
    Par défaut Petit ajout concernant le contenu de la poubelle
    Bonjour à toutes et à tous,

    @ Gilbert Geyer, comme j'utilise ton excellente source, je me suis permis de modifier le code pour voir le contenu de la poubelle.

    Sans connaître le CLSID :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    procedure TFNettoyeur.B1Click(Sender: TObject);
     var
        recycleBinPIDL: PItemIDList;
        execInfo: TShellExecuteInfo;
     begin
        SHGetSpecialFolderLocation(Handle, CSIDL_BITBUCKET, recycleBinPIDL) ;
        with execInfo do
        begin
          cbSize := Sizeof(execInfo) ;
          fMask := SEE_MASK_IDLIST;
          Wnd := Handle;
          lpVerb := nil;
          lpFile := nil;
          lpParameters := nil;
          lpDirectory := nil;
          nShow := SW_SHOWNORMAL; //SW_SHOWDEFAULT
          hInstApp:=0;
          lpIDList := recycleBinPIDL;
        end;
        ShellExecuteEx(@execInfo) ; 
    end;
    En connaissant le CLSID :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    procedure TFNettoyeur.B2Click(Sender: TObject);
    begin
    ShellExecute (0,
         'open', //commande à exécuter
         'explorer.exe', // programme à exécuter
         '/root,::{645FF040-5081-101B-9F08-00AA002F954E}', // Switch pour explorer +  CLSID de la corbeille
         0, // pas de rep. par défaut
         SW_SHOWDEFAULT);
    end;
    @+,

    Cincap

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Upload de fichier multiple sous Internet Explorer
    Par polothentik dans le forum Langage
    Réponses: 1
    Dernier message: 04/07/2008, 09h17
  2. Javascript, fichier .JS et Internet Explorer
    Par AxelFoley dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/01/2008, 17h38
  3. [D7] PBM WebBrowser et cache Internet Explorer
    Par fredfred dans le forum Web & réseau
    Réponses: 2
    Dernier message: 12/10/2007, 17h02
  4. Réponses: 2
    Dernier message: 26/09/2007, 11h43
  5. Supprimer les avertissements d'internet explorer
    Par koKoTis dans le forum Windows Serveur
    Réponses: 12
    Dernier message: 18/09/2007, 10h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo