Форум: "Начинающим";
Текущий архив: 2007.12.23;
Скачать: [xml.tar.bz2];
ВнизFindFirst, FindNext Найти похожие ветки
← →
webpauk © (2007-11-26 15:25) [0]просматриваю список файлов, папок.
Проблема: не показываются скрытые папки и файлыprocedure TForm1.CreateFileList(sl: TStringList; const FilePath: string);
var
sr: TSearchRec;
procedure ProcessFile;
begin
if (sr.Name = ".")or(sr.Name = "..") then exit;
sl.Add(FilePath + "\" + sr.Name);
if sr.Attr = faDirectory then CreateFileList(sl, FilePath + "\" + sr.Name);
end;
var
fPath: String;
begin
if not DirectoryExists(FilePath) then exit;
fPath:=FilePath;
if fPath[Length(fPath)]<> "\" then fPath := fPath + "\";
if FindFirst(fPath + "*.*", faAnyFile , sr) = 0 then ProcessFile;
while FindNext(sr) = 0 do ProcessFile;
FindClose(sr);
end;
← →
Сергей М. © (2007-11-26 15:44) [1]А где ты указал, что они тебя интересуют ?
Нигде.
Потому и ССЗБ)
← →
webpauk © (2007-11-26 15:48) [2]
> Сергей М. © (26.11.07 15:44) [1]
насчет буратины пропустим...
где указать?
← →
Сергей М. © (2007-11-26 15:51) [3]Как это где ?
В проверке флагов, содержащихся в поле sr.Attr, где же еще)
← →
webpauk © (2007-11-26 15:53) [4]if (sr.Attr = faDirectory) or (sr.Attr = faHidden) then ???
← →
Сергей М. © (2007-11-26 15:56) [5]
> webpauk © (26.11.07 15:53) [4]
Не-а ..
В справке ведь даже пример есть, почему бы не изучить его ?
← →
Сергей М. © (2007-11-26 15:59) [6]if (sr.Attr = faDirectory) or (sr.Attr = faHidden) then ???
означает
Если это директория или скрытый файл тогда ???
← →
{RASkov} (2007-11-26 16:06) [7]> [4] webpauk © (26.11.07 15:53)
Так не проверяется...
нужно так:
if Attr and faXxxx = faXxxx then....
Это я увидел в твоем коде такую ошибку с директориями....
А поиск файлов задается вторым параметром в FindFirst, т.е. в твоем случае (faAnyFile) искать любые файлы
> [6] Сергей М. © (26.11.07 15:59)
> означает
>
> Если это директория или скрытый файл тогда ???
Не совсем так, а либо только директория либо только с атрибутом скрытый.....
:)
← →
Dennis I. Komarov © (2007-11-26 16:06) [8]> [5] Сергей М. © (26.11.07 15:56)
> [6] Сергей М. © (26.11.07 15:59)
Справки нету, вот и тычим куда придется, авось заработает.
← →
{RASkov} (2007-11-26 16:14) [9]> Не совсем так, а либо только директория либо только с атрибутом скрытый.....
т.е. например если файл имеет атрибуты скрытый и только для чтения, то он уже сюда(sr.Attr = faHidden)
"не прокатит", хотя скрытым его считать можно )
← →
Riply © (2007-11-26 16:31) [10]> [8] Dennis I. Komarov © (26.11.07 16:06)
> Справки нету.
Это как это ?
Нет серьезно интересно: кто, как и главное зачем(?!) ставит Delphi без Help`а ?
← →
Dennis I. Komarov © (2007-11-26 16:38) [11]> [10] Riply © (26.11.07 16:31)
Ну как будто первый раз тут :)
← →
авыф (2007-11-26 17:29) [12]delphimaster = FastAdvancedDelphiHelp
А что, можно думать иначе?
← →
Dennis I. Komarov © (2007-11-26 17:38) [13]
> А что, можно думать иначе?
> А, нужно думать иначе?
← →
Anatoly Podgoretsky © (2007-11-26 19:00) [14]> {RASkov} (26.11.2007 16:06:07) [7]
Никаких либо
← →
{RASkov} (2007-11-26 19:13) [15]> [14] Anatoly Podgoretsky © (26.11.07 19:00)
Как это никаких???
Для выполнения условия файл должен иметь один(!) установленный атрибут (либо faDirectory, либо faHidden)...
даже скрытая директория не проходит условие :)if (sr.Attr = faDirectory) or (sr.Attr = faHidden) then
:о)...Бр.
← →
Anatoly Podgoretsky © (2007-11-26 19:37) [16]> {RASkov} (26.11.2007 19:13:15) [15]
А то что могут быть и оба и даже более.
← →
{RASkov} (2007-11-26 19:57) [17]> [16] Anatoly Podgoretsky © (26.11.07 19:37)
> А то что могут быть и оба и даже более.
Ну и "в пролете" эти файлы.... именно так же как и директории в [0] т.е. нет рекурсии из-за этого...
Поэтому - либо так, либо эдак, но никак не вместе или с чем нибудь :)
Что-то я до сих пор не пойму "придирки" в [14] :(
← →
Германн © (2007-11-27 01:38) [18]
> {RASkov} (26.11.07 19:57) [17]
>
> Что-то я до сих пор не пойму "придирки" в [14] :(
>
Не волнуйся, ты прав в ответе на
> Сергей М. © (26.11.07 15:59) [6]
Но [6] есть ответ на [4], который не решает сабж.
А правильное решение сабжа настоятельно предполагает использование оператора in.
← →
Германн © (2007-11-27 01:45) [19]
> Не волнуйся, ты прав в ответе на
> > Сергей М. © (26.11.07 15:59) [6]
>
Точнее ты прав в том ответе, но только если выбросить слова
> Не совсем так
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.12.23;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.043 c