Поиск папок - PullRequest
       17

Поиск папок

0 голосов
/ 14 марта 2010

Я хочу узнать, сколько папок находится в папке, или я должен сказать, сколько вложенных папок в папке. Итак, как мне это сделать ???

P.S. Я программирую с Delphi

Ответы [ 4 ]

3 голосов
/ 14 марта 2010

В дополнение к уловке FindFirst вам потребуется использовать рекурсию, если вы хотите сосчитать все папки в дереве (то есть все уровни), а не только непосредственную папку.

Вот краткий пример рекурсивного подхода, который выглядит как раз то, что вы ищете. Подсказка: метод Find () используется рекурсивно.

Пример рекурсивного поиска на DelphiTricks.com

2 голосов
/ 14 марта 2010
1 голос
/ 14 марта 2010

Это зависит от версии вашего компилятора. Если вы используете Delphi 2010, самый простой код, который я могу придумать, это:

uses IOUtils, Types;

function GetSubDirCount(const Path: string): Cardinal;
var
  StrArray : TStringDynArray;
begin
  StrArray := TDirectory.GetDirectories(Path,'*',IOUtils.TSearchOption.soAllDirectories);
  Result := Length(StrArray);
end; 
0 голосов
/ 14 марта 2010

Вы не упомянули, какую версию Delphi вы используете. В последней версии есть модуль IOUtils, который включает класс TDirectory. Смотрите пример здесь: текст ссылки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...