PDA

Ver la Versión Completa : Obtener el número de subdirectorios de un directorio dado


dec
07-06-2006, 19:51:39
Devuelve el número de subdirectorios de un determinado directorio. Pueden contarse los subdirectorios ocultos, de sistema y de "solo lectura". Como parámetros hay que pasar la ruta del directorio cuyos subdirectorios quieren contarse, además de si hay que tener en cuenta los subdirectorios cuyos atributos coincidan con los mencionados arriba.


uses
SysUtils;

function NumeroSubDirectorios(directorio: string;
ocultos, sistema, soloLectura: boolean) : integer;
var
SR: TSearchRec;
atributos: Cardinal;
begin
Result := 0;
atributos := faDirectory;
if ocultos then atributos := atributos or faHidden;
if sistema then atributos := atributos or faSysFile;
if soloLectura then atributos := atributos or faReadOnly;
directorio := IncludeTrailingPathDelimiter(directorio);
if FindFirst(directorio +'*', atributos, SR) = 0 then
begin
repeat
if (SR.Name <> '.') and (SR.Name <> '..')
and DirectoryExists(directorio + SR.Name) then
Inc(Result);
until FindNext(SR) <> 0;
SysUtils.FindClose(SR);
end;
end;