BenXbox
Messages postés210Date d'inscriptionmercredi 5 juin 2002StatutMembreDernière intervention14 août 2007
-
15 mai 2005 à 13:56
BenXbox
Messages postés210Date d'inscriptionmercredi 5 juin 2002StatutMembreDernière intervention14 août 2007
-
20 mai 2005 à 01:37
Salut à tous,
Voila j'ai essayer de supprimer manuellement le dossier Cookies de ma session Xp, et il m'affiche un message comme quoi je ne peut pas supprimer le dossier, j'ai essayer avec la fonction suivante et il m'affiche le même message :
function EffaceDossier(Dossier : String): Boolean; var FileOpStruct : TShFileOpStruct;
begin
FileOpStruct.Wnd := 0;
FileOpStruct.wFunc := FO_DELETE;
FileOpStruct.pFrom := PChar(Dossier);
FileOpStruct.pTo := nil;
FileOpStruct.fFlags := FOF_NOCONFIRMATION or FOF_SILENT;
FileOpStruct.lpszProgressTitle := nil;Result :ShFileOperation(FileOpStruct) 0;
end;
Alors j'aurais voulue savoir si il y a une moyen de supprimer les fichiers et les sous dossiers qui sont à l'intérieure de ce dossier.
BenXbox
Messages postés210Date d'inscriptionmercredi 5 juin 2002StatutMembreDernière intervention14 août 2007 16 mai 2005 à 12:29
Salut Kenavo et merci de m'aider pour ce problème,
Donc si j'ai bien compris je doit faire sa :
function EffaceDossier(Dossier : String): Boolean; var FileOpStruct : TShFileOpStruct;
begin
SetFileAttributes(PChar(Dossier), FILE_ATTRIBUTE_DIRECTORY);
FileOpStruct.Wnd := 0;
FileOpStruct.wFunc := FO_DELETE;
FileOpStruct.pFrom := PChar(Dossier);
FileOpStruct.pTo := nil;
FileOpStruct.fFlags := FOF_NOCONFIRMATION or FOF_SILENT;
FileOpStruct.lpszProgressTitle := nil;Result :ShFileOperation(FileOpStruct) 0;
end;
J'ai essayer et j'ai toujours le message comme quoi c'est un dossier système.
Merci d'avance.
cs_Kenavo
Messages postés702Date d'inscriptionvendredi 21 mars 2003StatutMembreDernière intervention 1 octobre 20095 17 mai 2005 à 09:19
C'était pour te permettre de vérifier les attributs du dossier à supprimer avant de faire l'appel à
ShFileOperation
Le problème vient sans doute du fait que ton répertoire Cookies est
sans doute référencé dans la base de registres comme répertoire spécial
: voir clés
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders et HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folder
Tu aurrais peut être intéret à supprimer les cookies sans effacer le
répertoire ! Donc à écrire une fonction VideDossier plutôt que
EffaceDossier.
cs_Kenavo
Messages postés702Date d'inscriptionvendredi 21 mars 2003StatutMembreDernière intervention 1 octobre 20095 18 mai 2005 à 09:23
Enlève le flag FOF_SILENT
(et même FOF_NOCONFIRMATION )
pour
avoir un retour d'infomation du système, Il te dira pourquoi il
ne veut pas effacer tes sous répertoires (sytèmes, read-only, utilisés
par un autre programme,...)
BenXbox
Messages postés210Date d'inscriptionmercredi 5 juin 2002StatutMembreDernière intervention14 août 2007 19 mai 2005 à 01:40
Donc j'ai avancer un petit peu, j'ai réussie à afficher dans une ListBox tout les fichiers, mais j'arrive toujours pas à supprimer, donc je mais le code, si tu as une idée :
procedure TForm1.Recherche(Base : string; SubDir : string = '');
begin
if FindFirst(Base+SubDir+'*', faAnyFile, SR) = 0 then
begin
repeat
if (SR.Name <> '.') and (SR.Name <> '..') then
begin
if (SR.Attr and faDirectory) = 0 then
begin
ListBox1.Items.Append(SubDir+SR.Name);
ListBox1.Perform(WM_VSCROLL, SB_BOTTOM, 0);
end else Recherche(Base, SubDir+SR.Name+'\');
end;
until FindNext(SR) <> 0;
FindClose(SR);
end;
end;
function EffaceDossier(Dossier : String): Boolean; var FileOpStruct : TShFileOpStruct;
begin
FileOpStruct.Wnd := 0;
FileOpStruct.wFunc := FO_DELETE;
FileOpStruct.pFrom := PChar(Dossier);
FileOpStruct.pTo := nil;
FileOpStruct.fFlags := FOF_NOCONFIRMATION or FOF_SILENT;
FileOpStruct.lpszProgressTitle := nil;Result :ShFileOperation(FileOpStruct) 0;
end;