Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.04;
Скачать: CL | DM;

Вниз

Какой смысл указывать атрибуты файлов в FindFirst?   Найти похожие ветки 

 
Игорь   (2004-06-16 14:13) [0]

Какой смысл указывать атрибуты файлов в FindFirst, если она
так или иначе игнорирует этот параметр и потом приходится выполнять проверку
атрибутов файла?

Например, мне нужно найти все файлы .txt на диске C с атрибутом
"Архивный" и поместить имена найденых файлов в Memo. Я пишу:

var

SR:TSearchRec;

begin

if FindFirst("c:\*.txt", faArchive, SR) = 0 then

repeat

Memo1.Lines.Append(SR.Name)

until FindNext(SR) <> 0;

FindClose(SR);

end;

В результате получаю весь список файлов txt даже если они не
соответсвуют заданому атрибуту faArchive. Значит приходится
делать проверку:

if (SR.Attr and faArchive) = SR.Attr then Memo1.Lines.Append(SR.Name);

Тогда какая разница какие атрибуты задавать faArchive или faAnyFile ?
Только потому, что это обязательный параметр функиции, так что ли выходит?


 
Anatoly Podgoretsky ©   (2004-06-16 14:15) [1]

Для того чтобы получить и файлы с дополнительными атрибутами, посмотрю я как ты получишь реадонли файлы без этого атррибута.


 
Игорь   (2004-06-16 14:22) [2]

Легко! Только что проверил, задав faArchive и установив одному txt атрибут только чтение. Без проверки он был добавлен в список со всеми остальными!


 
panov ©   (2004-06-16 14:54) [3]

Посмотри исходник.


 
ЮрийК ©   (2004-06-16 15:14) [4]

Какой исходник, ГДЕ?


 
panov ©   (2004-06-16 15:25) [5]

>ЮрийК ©   (16.06.04 15:14) [4]

Какой исходник, ГДЕ?

FindFirst/FindNext в SysUtils.pas


 
Игорь   (2004-06-16 15:30) [6]

Сейчас попробовал так:
faReadonly+faHidden

на диске С есть 4 .txt файла: на 2 из них установлены атрибуты
"Только чтение" + "Скрытый", а другие 2 с атрибутом "архивный"
В итоге в Memo добавлены все 4 файла.
Может я что-то неправильно понимаю?
Задавая атрибуты в FindFirst faReadonly+faHidden я указываю, что
нужно искать только те файлы на которых установлены эти атрибуты, а
все остальные игнорируются, так? Если да, то в чем тогда дело, что
находятся все .txt не имеющие отношение к скрытым и реадонли?


 
ЮрийК ©   (2004-06-16 15:55) [7]

Странно:
Если это баг, то почему так долго не обнаруживали?

Пользуйся АПИ функциями. Возвращаются все файлы по маске, а дальше по атрибутам выцепляешь нужные.


 
Anatoly Podgoretsky ©   (2004-06-16 16:06) [8]

Игорь   (16.06.04 15:30) [6]
Ты неправильно поинмаешь, за это время мог бы посмотреть справку
Не только, а плюс и эти


 
Игорь   (2004-06-16 16:36) [9]

>Anatoly Podgoretsky ©   (16.06.04 16:06) [8]
>Игорь   (16.06.04 15:30) [6]
>Ты неправильно поинмаешь, за это время мог бы посмотреть справку
>Не только, а плюс и эти

Значит возвращаемся к вопросу #1.
Выходит дело, что faArchive и др. аналогичны константе faAnyFile и без
проверки не обойтись.


 
Anatoly Podgoretsky ©   (2004-06-16 17:02) [10]

Естественно, если тебе нужны файлы с определенными аттрибутами, то придется проверять, но зато можно с помощью этого отфильтровать не нужное, например не нужны каталоги не указывай аттрибут.



Страницы: 1 вся ветка

Текущий архив: 2004.07.04;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.021 c
3-1086785218
Ugrael
2004-06-09 16:46
2004.07.04
Запрос суммы по месяцам


1-1087563976
Vadim
2004-06-18 17:06
2004.07.04
Код символа


8-1082133564
sashik
2004-04-16 20:39
2004.07.04
текстура


1-1087510199
Mozart
2004-06-18 02:09
2004.07.04
(повторный запуск приложения) - Stack Overflow в вин98


1-1087478400
Leron
2004-06-17 17:20
2004.07.04
А как получить имена всех запущенных файлов word a