|
begin process at 2008 08 20 15:26:49
Derniers logiciels
|
Trouver une ressource (Nouvelle version du moteur, plus rapide & pertinent, essayez le !)
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : Comment delete des fichiers d'un dossier systeme [ Archives / Fichier / Disque ] (BenXbox)
|
Comment delete des fichiers d'un dossier systeme
le 15/05/2005 13:56:13

BenXbox
|
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.
Merci d'avance. Mon Site Web : [ Lien ]
|
|
|
|
Re : Comment delete des fichiers d'un dossier systeme
le 16/05/2005 08:01:58

Kenavo
|
Salut BenBox,
Il faut probablement modifier les attibuts du dossier. Il doit avoir l'attribut System qui t'empêche de l'effacer.
Pout lire les attributs : Attributs := GetFileAttributes(PChar(Dossier)); // Attributs : DWord Pour les modifier : SetFileAttributes(PChar(Dossier), Attributs);
Avec pour valeurs d'attributs (dans Windows.pas) :
{$EXTERNALSYM FILE_ATTRIBUTE_READONLY} FILE_ATTRIBUTE_READONLY = $00000001; {$EXTERNALSYM FILE_ATTRIBUTE_HIDDEN} FILE_ATTRIBUTE_HIDDEN = $00000002; {$EXTERNALSYM FILE_ATTRIBUTE_SYSTEM} FILE_ATTRIBUTE_SYSTEM = $00000004; {$EXTERNALSYM FILE_ATTRIBUTE_DIRECTORY} FILE_ATTRIBUTE_DIRECTORY = $00000010; {$EXTERNALSYM FILE_ATTRIBUTE_ARCHIVE} FILE_ATTRIBUTE_ARCHIVE = $00000020; {$EXTERNALSYM FILE_ATTRIBUTE_NORMAL} FILE_ATTRIBUTE_NORMAL = $00000080; {$EXTERNALSYM FILE_ATTRIBUTE_TEMPORARY} FILE_ATTRIBUTE_TEMPORARY = $00000100; {$EXTERNALSYM FILE_ATTRIBUTE_COMPRESSED} FILE_ATTRIBUTE_COMPRESSED = $00000800; {$EXTERNALSYM FILE_ATTRIBUTE_OFFLINE} FILE_ATTRIBUTE_OFFLINE = $00001000;
Donc dans ton cas tu peux essayer en ajoutant, au debut de ta procédure, la ligne : SetFileAttributes(PChar(Dossier), FILE_ATTRIBUTE_DIRECTORY);
Ken@vo
Code, Code, Codec !

|
|
|
|
Re : Comment delete des fichiers d'un dossier systeme
le 16/05/2005 12:29:14

BenXbox
|
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. Mon Site Web : [ Lien ]
|
|
|
|
Re : Comment delete des fichiers d'un dossier systeme
le 16/05/2005 19:18:11

Kenavo
|
Ah ! M... ! C'est bien l'attribut auquel je pensais !
Serait-il référencé comme dossier système ailleurs ? En utilisant la fonction suivante, tu peux lire les attributs du dossier : Attribut := GetFileAttributes(PChar(Dossier));
Pas mieux ! Désolé !
Ken@vo
Code, Code, Codec !

|
|
|
|
Re : Comment delete des fichiers d'un dossier systeme
le 16/05/2005 23:21:31

BenXbox
|
J'ai pas compris l'histoire du Attribut := GetFileAttributes(PChar(Dossier)); Mon Site Web : [ Lien ]
|
|
|
|
Re : Comment delete des fichiers d'un dossier systeme
le 17/05/2005 09:19:27

Kenavo
|
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 estsans 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 lerépertoire ! Donc à écrire une fonction VideDossier plutôt queEffaceDossier.
Ken@vo
Code, Code, Codec !

|
|
|
|
Re : Comment delete des fichiers d'un dossier systeme
le 17/05/2005 12:35:04

BenXbox
|
Et avec la fonction VideDossier, sa peut supprimer les SousDossier ?Mon Site Web : [ Lien ]
|
|
|
|
Re : Comment delete des fichiers d'un dossier systeme
le 17/05/2005 13:36:24

Kenavo
|
Faut essayer !
Ken@vo
Code, Code, Codec !

|
|
|
|
Re : Comment delete des fichiers d'un dossier systeme
le 17/05/2005 16:06:36

BenXbox
|
Le problème c'est que je ne sais pas du tout comment faire, sinon je l'aurais fais :) Mon Site Web : [ Lien ]
|
|
|
|
Re : Comment delete des fichiers d'un dossier systeme
le 17/05/2005 18:45:25

Kenavo
|
Bon, on y va !
Le pricipe que je te donne est général, je ne sais pas si il te donnerasatisfaction. Il y a des mystères pour moi autour des cookies ! Le seul truc dont je sois sûr, est que dasns un répertoire \Cookies, il y a un fichier Index.dat qui n'est guère manipulable.
function VideDossier(Dossier : String): Boolean; var FileOpStruct : TShFileOpStruct; SearchRec : TSearchRec; s : String; Resu : Integer; begin S := ''; Resu := FindFirst(Dossier+'\*.*',faAnyFile,SearchRec); // recherche tous les fichiers While Resu = 0 do begin if (SearchRec.Name[1]<>'.') and (SearchRec.Name<>'INDEX.DAT') then // si fichier à éliminer s:=s+Dossier+'\'+SearchRec.Name+#0; // constitution de la liste des fichiers à effacer Resu := FindNext(SearchRec); end; s:=s+#0; FindClose(SearchRec); SetFileAttributes(PChar(Dossier), FILE_ATTRIBUTE_DIRECTORY); FileOpStruct.Wnd := 0; FileOpStruct.wFunc := FO_DELETE; FileOpStruct.pFrom := PChar(s); // liste des fichier à effacer FileOpStruct.pTo := nil; FileOpStruct.fFlags := FOF_NOCONFIRMATION or FOF_SILENT; FileOpStruct.lpszProgressTitle := nil; Result := ShFileOperation(FileOpStruct) = 0; end;
A tester !
Ken@vo
Code, Code, Codec !
|
|
|
Classé sous : dossier, fichiers, supprimer, delete, fileopstruct
|
CalendriCode
| | | L | M | M | J | V | S | D |
| | | | | 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 | 29 | 30 | 31 |
|
Téléchargements
Logiciels à télécharger sur le même thème :
|
|