![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Маска папки [D5]
R © (2004-07-28 08:12:00)Если производить поиск файлов то тут все понятно,
для индентификации соответствия имени файла указанной
маске сообразуясь с правилами(*,? ...) можно использовать функцию MatchesMask или IsWild(RxLib)...,
но как быть с папками, какую функцию можно использовать?
Fay (2004-07-28 14:03:00) [41]Пережуёшь сам.
var
fd : _WIN32_FIND_DATA;
fh : DWORD;
begin
FillChar(fd, SizeOf(fd), 0);
fh := FindFirstFile('c:\?rog*', fd);
if fh = INVALID_HANDLE_VALUE then RaiseLastOSError;
try
repeat
if (fd.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) <> 0 then
ShowMessage(fd.cFileName);
until not FindNextFile(fh, fd);
finally
Windows.FindClose(fh);
end;
R (2004-07-28 13:51:00) [42]>Fay © (28.07.04 09:07) [1]
FindFirstFile/FindNextFile/FindClose
Нет не будет счастья.
>Anatoly Podgoretsky © (28.07.04 09:16) [2]
Нет ни каких папок - это все файлы
Это то понятно, но те функции которые я перечислил
не будут отрабатывать при поиске именно папки, точнее
не так как надо.
Приведите пример не функции поиска, а именно определения
соответствия масски введенной пользователем имени папки.
Ну допустим надо найти Program Files , а маска такова ?rogram*
Anatoly Podgoretsky (2004-07-28 09:16:00) [43]Нет ни каких папок - это все файлы
Fay (2004-07-28 09:07:00) [44]FindFirstFile/FindNextFile/FindClose
И сразу будет счастье.