Caribensila
Messages postés2527Date d'inscriptionjeudi 15 janvier 2004StatutMembreDernière intervention16 octobre 2019
-
26 nov. 2010 à 20:05
cs_pseudo3
Messages postés268Date d'inscriptionmardi 24 juillet 2007StatutMembreDernière intervention 2 février 2021
-
14 avril 2011 à 16:00
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_pseudo3
Messages postés268Date d'inscriptionmardi 24 juillet 2007StatutMembreDernière intervention 2 février 20211 14 avril 2011 à 16:00
Re-bonjour,
OK, super ton code marche enfin correctement.
Mais je ne sais toujours pas pourquoi le mien ne marche pas : j'utilisais le code suivant qui marche pour tous les dossiers sauf pour le Temporary Internet Files :
procedure ViderDossierTousFichiers(Dossier : string; var Trouves,Detruits : integer);
// ATTENTION action irréversible :
// Cette routine vide le Dossier et ses sous-dossiers de tous ses fichiers
// et supprime tous les sous-dossiers, seul subsiste le Dossier vide, exception faite
// des fichiers faReadOnly et des fichiers en cours d'utilisation et des sous-dossiers qui en contiennent.
// Les var Trouves et Detruits doivent être initialisées à 0 par la routine d'appel.
var ffn : Integer;
sr : TSearchRec;
begin if Dossier='' then EXIT;
Dossier:=IncludeTrailingBackslash(Dossier);
ffn:=SysUtils.FindFirst(Dossier+'*.*',faAnyFile,sr);
while ffn=0 do begin
try if ((sr.Attr and faDirectory)<=0) then begin
inc(Trouves);
Application.ProcessMessages;
if not SysUtils.DeleteFile(Dossier+sr.Name)
then Form1.RichEdit1.lines.add(Dossier+sr.Name+' : Fichier non supprimé '+AttributToStr( sr.Attr ))
else inc(Detruits);
end else begin
if sr.Name[1]<>'.' then begin
ViderDossierTousFichiers(Dossier+sr.Name,Trouves,Detruits); // vide les sous-dossiers de facon recursive
if not removeDir(Dossier+sr.Name)
then Form1.RichEdit1.lines.add(Dossier+sr.Name+' : Dossier non supprimé '+AttributToStr( sr.Attr ))
else inc(Detruits);
end;
end;
ffn:=SysUtils.FindNext(sr);
except
end;
end;
SysUtils.FindClose(sr);
end;
A+.
cs_pseudo3
Messages postés268Date d'inscriptionmardi 24 juillet 2007StatutMembreDernière intervention 2 février 20211 14 avril 2011 à 15:36
Bonjour,
OK, merci je vais tester.
Cela m'intrigue de savoir pourquoi cela ne marchait pas correctement.
A+.
adnaner
Messages postés26Date d'inscriptionvendredi 10 septembre 2010StatutMembreDernière intervention 5 juillet 2011 14 avril 2011 à 14:45
Bonjour,
j'ai fait une mise a jour(14 avril 2011 14:39:27),et la suppressions de "Temporary Internet Files" marche correctement,
A+
cs_pseudo3
Messages postés268Date d'inscriptionmardi 24 juillet 2007StatutMembreDernière intervention 2 février 20211 13 avril 2011 à 14:23
Bonjour,
Jai testé le code corrigé du 10 avril 2011 15:39:26 il n'y a plus les embrouilles
Par contre la suppression du contenu des sous-dossiers de C:\Documents and Settings\...\Local Settings\Temporary Internet Files\Content.IE5 ne marche toujours pas encore : il devrait n'y subsiter que les fichiers *.dat alors qu'il y reste plein de fichiers *.jpg *.gif etc : mystère et boule de gomme.
De mon côté j'ai une appli similaire dans laquelle j'utilise findfist/findnext, DeleteFile et removeDir qui elle aussi ne marche qu'avec des dossiers différents de Temporary Internet Files mais pas avec ce dossier : mystère et boule de gomme.
A+.
cs_pseudo3
Messages postés268Date d'inscriptionmardi 24 juillet 2007StatutMembreDernière intervention 2 février 20211 10 avril 2011 à 16:23
Re-bonjour,
>> mais il me reste du travail :
Il n'y a pas le feu, cela peut attendre.
>> pour les fichiers qui sont planqués dans Prefetcher il n'y a pas un risque de les supprimer ;) :
... OK merci, je vais voir wikipédia.
Au fait dans C:\Documents and Settings\HelpAssistant\Local Settings\
on trouve également des sous-dossiers Temp, Historique, et Temporary Internet Files
... y-at-il un risque d'en supprimer le contenu ???
A+.
adnaner
Messages postés26Date d'inscriptionvendredi 10 septembre 2010StatutMembreDernière intervention 5 juillet 2011 10 avril 2011 à 16:05
et pour les fichiers qui sont planqués dans Prefetcher il n'y a pas un risque de les supprimer ;)
pour plus d'information :http://en.wikipedia.org/wiki/Prefetcher
adnaner
Messages postés26Date d'inscriptionvendredi 10 septembre 2010StatutMembreDernière intervention 5 juillet 2011 10 avril 2011 à 15:58
Bonsoir,
re-merci pseudo3 :)
j'ai fait une mise a jour provisoire,
-nettoyer le zip.
-renommer les composent.
-utiliser les répertoire spéciaux de windows.
-ajouter des commentaire.
-supprimer l'entrée de démarrage des programme dans le registre
mais il me reste de travaille, je suis dans trine de faire un code pour éviter le message d'erreure lorsque on supprimer un ficher utilisé par un autre programme et sa va régler le problème de suppressions de "Temporary Internet Files"...,je vais mettre une autre mise a jour prochainement,
A+
cs_pseudo3
Messages postés268Date d'inscriptionmardi 24 juillet 2007StatutMembreDernière intervention 2 février 20211 10 avril 2011 à 12:55
Re-bonjour,
Au fait PhpAnonyme avait signalé la présence de nombreuses fautes d'orthographe dans la capture : il faudrait remplacer le texte des labels par :
"Comme vous le savez déjà pour supprimer un fichier ou un dossier sous Windows,
il ne faut pas qu'il soit utilisé par un autre programme.
Fermer d'abord les programmes susceptibles d'utiliser le fichier."
En testant le code j'ai aussi remarqué que les suppressions ne marchent pas partout. Cela marche par exemple pour vider le dossier 'Cookies' par contre le vidage des sous-dossiers C:\Documents and Settings\...\Temporary Internet Files\Content.IE5\4XYR8XMJ ne fonctionne pas : mystère et boule de gomme.
A+.
cs_pseudo3
Messages postés268Date d'inscriptionmardi 24 juillet 2007StatutMembreDernière intervention 2 février 20211 9 avril 2011 à 17:30
Re-bonjour,
OK vu, merci.
Au fait c'est quoi les fichiers qui sont planqués dans Prefetch ???
N'y a-t-il pas un risque de les supprimer ???
Pendant que j'y suis pour récupérer certains Dossiers spéciaux de Windows on peut aussi les obtenir comme suit:
// ------ Dossiers spéciaux de Windows -----------------------------------------
var DossHistorique,
DossCookies,
DossTemporaryInternetFiles, // Dossier des fichiers temporaires d'Internet Explorer.
DossRecents : string; // Dossier des raccourcis vers les Fichiers récemment ouverts.
function DossierSpecialWindows(Folder: Integer): String;
var SFolder : pItemIDList;
SpecialPath : Array[0..MAX_PATH] Of Char;
begin SHGetSpecialFolderLocation(Form1.Handle, Folder, SFolder);
SHGetPathFromIDList(SFolder, SpecialPath);
Result := StrPas(SpecialPath);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin DossTemporaryInternetFiles :=DossierSpecialWindows(CSIDL_INTERNET_CACHE);
DossHistorique :=DossierSpecialWindows(CSIDL_HISTORY);
DossCookies :=DossierSpecialWindows(CSIDL_COOKIES);
DossRecents :=DossierSpecialWindows(CSIDL_RECENT);
// pour les CSIDL_ voir http://msdn.microsoft.com/en-us/library/bb762494(v=vs.85).aspx end;
A+.
adnaner
Messages postés26Date d'inscriptionvendredi 10 septembre 2010StatutMembreDernière intervention 5 juillet 2011 9 avril 2011 à 15:40
bonjour,
merci pseudo3, j'ai tout corrigé chez moi et j'ai ajouter quelque que option est je vais mettre la mise a jour prochainement,(je suis désolé pour les embrouilles,j'ai pas tester le prog par ce que à ce moment-là je n'arrive pas a ouvrir les dossier et a supprimer les fichiers a cause d'un virus).
cs_pseudo3
Messages postés268Date d'inscriptionmardi 24 juillet 2007StatutMembreDernière intervention 2 février 20211 9 avril 2011 à 15:15
Bonjour,
Il y a des embrouilles dans le code (liste non exhaustive) :
- le bouton Ouvrir les Cookies ouvre les Favoris,
- le bouton Ouvrir les Favoris ouvre le répertoire de l'application,
- le bouton Supprimer les Recent déclenche le Vidage de Prefetch,
- le bouton Supprimer Prefetch déclenche le Vidage de Recent...
A mon avis ces embrouilles viennent du fait de l'utilisation de noms génériques des boutons et des edit (ex : button5, edit11, etc) : Préférer des noms comme BtnOuvrirCookies, EditHistorique, BtnSupprimerRecents etc.
A+
adnaner
Messages postés26Date d'inscriptionvendredi 10 septembre 2010StatutMembreDernière intervention 5 juillet 2011 29 mars 2011 à 18:17
merci pour votre remarque,dis moi ou moi ou se trouve la fautes,poure regler ça,merci ;)
phpAnonyme
Messages postés392Date d'inscriptionmercredi 28 octobre 2009StatutMembreDernière intervention23 mars 201255 29 mars 2011 à 17:53
Je n'y connais absolument rien en delphi, mais punaise, le nombre de fautes d'orthographes qu'il y a dans la capture c'est hallucinant :D !!!
Je sais que nous sommes sur un site de prog, mais quand même il ne faut pas exagérer ! loool
adnaner
Messages postés26Date d'inscriptionvendredi 10 septembre 2010StatutMembreDernière intervention 5 juillet 2011 27 nov. 2010 à 16:25
Merci systmd...
au faite j'ai pensé a ça,(ça sera pour la prochaine version +++ des truc intéressant et avec +++ d'options Caribensila).:)
Caribensila
Messages postés2527Date d'inscriptionjeudi 15 janvier 2004StatutMembreDernière intervention16 octobre 201918 26 nov. 2010 à 20:05
Salut,
C'est comme le "nettoyage de disque" de Windows, quoi.
Mais avec moins d'options. :)
14 avril 2011 à 16:00
OK, super ton code marche enfin correctement.
Mais je ne sais toujours pas pourquoi le mien ne marche pas : j'utilisais le code suivant qui marche pour tous les dossiers sauf pour le Temporary Internet Files :
procedure ViderDossierTousFichiers(Dossier : string; var Trouves,Detruits : integer);
// ATTENTION action irréversible :
// Cette routine vide le Dossier et ses sous-dossiers de tous ses fichiers
// et supprime tous les sous-dossiers, seul subsiste le Dossier vide, exception faite
// des fichiers faReadOnly et des fichiers en cours d'utilisation et des sous-dossiers qui en contiennent.
// Les var Trouves et Detruits doivent être initialisées à 0 par la routine d'appel.
var ffn : Integer;
sr : TSearchRec;
begin if Dossier='' then EXIT;
Dossier:=IncludeTrailingBackslash(Dossier);
ffn:=SysUtils.FindFirst(Dossier+'*.*',faAnyFile,sr);
while ffn=0 do begin
try if ((sr.Attr and faDirectory)<=0) then begin
inc(Trouves);
Application.ProcessMessages;
if not SysUtils.DeleteFile(Dossier+sr.Name)
then Form1.RichEdit1.lines.add(Dossier+sr.Name+' : Fichier non supprimé '+AttributToStr( sr.Attr ))
else inc(Detruits);
end else begin
if sr.Name[1]<>'.' then begin
ViderDossierTousFichiers(Dossier+sr.Name,Trouves,Detruits); // vide les sous-dossiers de facon recursive
if not removeDir(Dossier+sr.Name)
then Form1.RichEdit1.lines.add(Dossier+sr.Name+' : Dossier non supprimé '+AttributToStr( sr.Attr ))
else inc(Detruits);
end;
end;
ffn:=SysUtils.FindNext(sr);
except
end;
end;
SysUtils.FindClose(sr);
end;
A+.
14 avril 2011 à 15:36
OK, merci je vais tester.
Cela m'intrigue de savoir pourquoi cela ne marchait pas correctement.
A+.
14 avril 2011 à 14:45
j'ai fait une mise a jour(14 avril 2011 14:39:27),et la suppressions de "Temporary Internet Files" marche correctement,
A+
13 avril 2011 à 14:23
Jai testé le code corrigé du 10 avril 2011 15:39:26 il n'y a plus les embrouilles
Par contre la suppression du contenu des sous-dossiers de C:\Documents and Settings\...\Local Settings\Temporary Internet Files\Content.IE5 ne marche toujours pas encore : il devrait n'y subsiter que les fichiers *.dat alors qu'il y reste plein de fichiers *.jpg *.gif etc : mystère et boule de gomme.
De mon côté j'ai une appli similaire dans laquelle j'utilise findfist/findnext, DeleteFile et removeDir qui elle aussi ne marche qu'avec des dossiers différents de Temporary Internet Files mais pas avec ce dossier : mystère et boule de gomme.
A+.
10 avril 2011 à 16:23
>> mais il me reste du travail :
Il n'y a pas le feu, cela peut attendre.
>> pour les fichiers qui sont planqués dans Prefetcher il n'y a pas un risque de les supprimer ;) :
... OK merci, je vais voir wikipédia.
Au fait dans C:\Documents and Settings\HelpAssistant\Local Settings\
on trouve également des sous-dossiers Temp, Historique, et Temporary Internet Files
... y-at-il un risque d'en supprimer le contenu ???
A+.
10 avril 2011 à 16:05
pour plus d'information :http://en.wikipedia.org/wiki/Prefetcher
10 avril 2011 à 15:58
re-merci pseudo3 :)
j'ai fait une mise a jour provisoire,
-nettoyer le zip.
-renommer les composent.
-utiliser les répertoire spéciaux de windows.
-ajouter des commentaire.
-supprimer l'entrée de démarrage des programme dans le registre
mais il me reste de travaille, je suis dans trine de faire un code pour éviter le message d'erreure lorsque on supprimer un ficher utilisé par un autre programme et sa va régler le problème de suppressions de "Temporary Internet Files"...,je vais mettre une autre mise a jour prochainement,
A+
10 avril 2011 à 12:55
Au fait PhpAnonyme avait signalé la présence de nombreuses fautes d'orthographe dans la capture : il faudrait remplacer le texte des labels par :
"Comme vous le savez déjà pour supprimer un fichier ou un dossier sous Windows,
il ne faut pas qu'il soit utilisé par un autre programme.
Fermer d'abord les programmes susceptibles d'utiliser le fichier."
En testant le code j'ai aussi remarqué que les suppressions ne marchent pas partout. Cela marche par exemple pour vider le dossier 'Cookies' par contre le vidage des sous-dossiers C:\Documents and Settings\...\Temporary Internet Files\Content.IE5\4XYR8XMJ ne fonctionne pas : mystère et boule de gomme.
A+.
9 avril 2011 à 17:30
OK vu, merci.
Au fait c'est quoi les fichiers qui sont planqués dans Prefetch ???
N'y a-t-il pas un risque de les supprimer ???
Pendant que j'y suis pour récupérer certains Dossiers spéciaux de Windows on peut aussi les obtenir comme suit:
// ------ Dossiers spéciaux de Windows -----------------------------------------
var DossHistorique,
DossCookies,
DossTemporaryInternetFiles, // Dossier des fichiers temporaires d'Internet Explorer.
DossRecents : string; // Dossier des raccourcis vers les Fichiers récemment ouverts.
function DossierSpecialWindows(Folder: Integer): String;
var SFolder : pItemIDList;
SpecialPath : Array[0..MAX_PATH] Of Char;
begin SHGetSpecialFolderLocation(Form1.Handle, Folder, SFolder);
SHGetPathFromIDList(SFolder, SpecialPath);
Result := StrPas(SpecialPath);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin DossTemporaryInternetFiles :=DossierSpecialWindows(CSIDL_INTERNET_CACHE);
DossHistorique :=DossierSpecialWindows(CSIDL_HISTORY);
DossCookies :=DossierSpecialWindows(CSIDL_COOKIES);
DossRecents :=DossierSpecialWindows(CSIDL_RECENT);
// pour les CSIDL_ voir http://msdn.microsoft.com/en-us/library/bb762494(v=vs.85).aspx
end;
A+.
9 avril 2011 à 15:40
merci pseudo3, j'ai tout corrigé chez moi et j'ai ajouter quelque que option est je vais mettre la mise a jour prochainement,(je suis désolé pour les embrouilles,j'ai pas tester le prog par ce que à ce moment-là je n'arrive pas a ouvrir les dossier et a supprimer les fichiers a cause d'un virus).
9 avril 2011 à 15:15
Il y a des embrouilles dans le code (liste non exhaustive) :
- le bouton Ouvrir les Cookies ouvre les Favoris,
- le bouton Ouvrir les Favoris ouvre le répertoire de l'application,
- le bouton Supprimer les Recent déclenche le Vidage de Prefetch,
- le bouton Supprimer Prefetch déclenche le Vidage de Recent...
A mon avis ces embrouilles viennent du fait de l'utilisation de noms génériques des boutons et des edit (ex : button5, edit11, etc) : Préférer des noms comme BtnOuvrirCookies, EditHistorique, BtnSupprimerRecents etc.
A+
29 mars 2011 à 18:17
29 mars 2011 à 17:53
Je sais que nous sommes sur un site de prog, mais quand même il ne faut pas exagérer ! loool
27 nov. 2010 à 16:25
au faite j'ai pensé a ça,(ça sera pour la prochaine version +++ des truc intéressant et avec +++ d'options Caribensila).:)
26 nov. 2010 à 20:05
C'est comme le "nettoyage de disque" de Windows, quoi.
Mais avec moins d'options. :)