2010-03-14 15 views
0

Je veux trouver combien de dossiers sont dans le dossier ou je devrais dire combien SubFolreds sont dans le dossier. Alors, comment je devrais faire ça ???Trouver des dossiers

P.S. Je suis avec Delphi programmant

Répondre

3

En plus de l'affaire FindFirst, vous aurez besoin d'utiliser récursion, si vous voulez compter tous les dossiers dans l'arborescence (tous les niveaux) et non pas seulement l'immédiat dossier.

Voici un court exemple de l'approche récursive, qui semble être exactement ce que vous cherchez. Astuce: la méthode Find() est utilisée de manière récursive.

Recursive Search example at DelphiTricks.com

+0

Je ne connaissais pas le site Delphi. Merci. +1 – lkessler

0

Vous n'avez pas mentionné quelle version de Delphi que vous utilisez. La dernière version a l'unité IOUtils qui inclut la classe TDirectory. Voir un exemple ici: link text

+0

J'utilise Delphi 2007 – gedO

1

Cela dépend de la version de votre compilateur. Si vous utilisez Delphi 2010, le code le plus simple que je peux trouver est le suivant:

uses IOUtils, Types; 

function GetSubDirCount(const Path: string): Cardinal; 
var 
    StrArray : TStringDynArray; 
begin 
    StrArray := TDirectory.GetDirectories(Path,'*',IOUtils.TSearchOption.soAllDirectories); 
    Result := Length(StrArray); 
end;