Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1196257351
malyar
2007-11-28 16:42
2007.12.23
вызав стандартных диалогов


2-1195849433
ton
2007-11-23 23:23
2007.12.23
как создать модуль объекта с возможностью выбора его параметров


2-1196406798
Quart
2007-11-30 10:13
2007.12.23
setfocus


1-1191514077
Андрей_Св
2007-10-04 20:07
2007.12.23
Выравнивание текста


15-1195587731
Черный Шаман
2007-11-20 22:42
2007.12.23
Ах вон он каков русский компьютер...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский