realbasic-nug.fr
[Top] [All Lists]

Re: Comment effacer le contenu d'un dossier ?

To: REALbasic NUG French <realbasic-nug dot fr at lists dot realsoftware dot com>
Subject: Re: Comment effacer le contenu d'un dossier ?
From: Arnaud Nicolet <anic297 at mac dot com>
Date: Wed, 28 Nov 2007 20:09:00 +0100
Delivered-to: listarchive at realsoftware dot com
Delivered-to: realbasic-nug dot fr at lists dot realsoftware dot com
References: <67802462-1D6A-495A-B74B-C50AD280482D at e-topics dot net>
Le 28 nov. 07 à 15:35 soir, Powel a écrit:

Bonjour,

Je me demande quelle est la méthode la plus rapide pour effacer le contenu d'un dossier.
Quelqu'un a-t-il une idée ?

Powel

Il y a deux méthodes:

la première, par récursivité:

Sub DeleteItem(f As FolderItem)
dim g As FolderItem
dim i As integer

for i=1 to f.count
g=f.TrueItem(i) 'Utiliser TrueItem pour éviter d'avoir une boucle infinie si jamais un alias est placé dans son original.
if g.Directory then
DeleteItem g
end if
g.delete
next
end sub

Le problème avec cette méthode est qu'elle peut provoquer une erreur de type "StackOverflowException" (si trop de dossiers sont imbriqués).

Une autre méthode consiste à utiliser une boucle et des variables de type tableau (on ajoute le dernier dossier trouvé dans une variable du genre MyFoldersToTreat() As FolderItem). Je suis en train de rechercher dans mon code (de tête, ce serait trop long à retrouver). Quand j'aurai trouvé, je vous ferai une nouvelle réponse.

<Prev in Thread] Current Thread [Next in Thread>