Supprimer un dossier

Résolu
bobstien Messages postés 38 Date d'inscription lundi 4 avril 2005 Statut Membre Dernière intervention 1 mars 2007 - 1 mars 2006 à 15:48
sisi231 Messages postés 207 Date d'inscription mercredi 5 mars 2003 Statut Membre Dernière intervention 29 mars 2013 - 1 mars 2006 à 18:01
Bonjour, dans mon programme j'utilise Mk_dir pour créer un dossier et j aimerais savoir comment faire pour suprimmer un dossier. Merci d'avance

2 réponses

jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
1 mars 2006 à 16:06
salut c'est RmDir qu'il faut utiliser:

procedure RmDir(const S: string); overload;



procedure RmDir(P: PChar); overload;





Description



RmDir supprime le sous-répertoire avec le chemin spécifié par S ou P.

attention

Si ce chemin n'existe pas, s'il n'est pas vide, ou s'il s'agit du répertoire en cours, une erreur d'E/S se produit.



@+

jlen
3
sisi231 Messages postés 207 Date d'inscription mercredi 5 mars 2003 Statut Membre Dernière intervention 29 mars 2013 5
1 mars 2006 à 18:01
Si je peux me permettre et si on parle bien de Windows :

dans l'aide de Delphi je vois :

Efface un répertoire vide existant.


Unité


RemoveDir

SysUtils


Catégorie


routines de gestion de fichiers


function RemoveDir(const Dir: string): Boolean;


Description


Appelez RemoveDir pour supprimer le répertoire spécifié par le paramètre Dir. La valeur renvoyée est à true si un répertoire a été effacé, false si une erreur s'est produite. Le répertoire doit être vide pour pouvoir être supprimé.

Pour un répertoire non vide on peut par exemple utiliser la fonction "maison" suivante :

procedure DeleteDir (dir :string);// efface un dossier mm plein
var
lpFileOp:TSHFILEOPSTRUCTA;
TabFrom:array[0..255] of char;
i:integer;
begin
//effacement du dossier
if directoryexists(dir) then
begin
For i:=0 to length(dir)-1 do TabFrom[i]:=dir[i+1];
TabFrom[length(dir)]:=#0;
TabFrom[length(dir)+1]:=#0;


lpFileOp.Wnd:=hwnd(0);
lpFileOp.wFunc:=FO_DELETE; // l'action sera un effacement
lpFileOp.pFrom:=TabFrom; // contient le ou les fichiers /dossiers à recopier
lpFileOp.pTo:='';
lpFileOp.fFlags:=FOF_NOCONFIRMATION+FOF_SILENT;
SHFileOperation(lpFileOp); // procède à l'effacement


end;
end;

après avoir ajouté ShellAPI à la clause uses, cette fonction est inspirée du tut suivant :

http://www.phidels.com/php/index.php3?page=../php/pagetelechargementzip.php3&id=152

il y a d'autres méthodes de plus bas niveau.

Quand à la création de dossier j'utilise CreateDir de FileCtrl.

Mais si tu parlais d'Unix dis-le moi.

A noter que d'autres méthodes (tjrs en Windows) consistent à utiliser Shellexecute pour lancer des commandes telles que del ou deltree par exemple.

Cordialement.

SISI231
3
Rejoignez-nous