| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Поиск файла |
| Автор: aktuba 22.2.2007, 13:31 | ||
Почему этот код находит все файлы, у которых расширение начинается на .dll, т.е. кроме file.dll находит также file.dllwww и т.д.??? |
| Автор: W4FhLF 22.2.2007, 13:49 |
| Маска поиска в твоём случае должна быть вида: Path + '\*.dll'. Убедись, что у тебя на конце lPath есть слеш. |
| Автор: aktuba 22.2.2007, 13:55 | ||
Слэш в конце есть. Если бы не было, функция не находила бы вообще ничего... |
| Автор: Snowy 22.2.2007, 14:14 |
| Так ищет винда. Дело не в дельфе - у винды много странноствей с поиском файлов. Проверяй расширение вручную. |
| Автор: Alexeis 22.2.2007, 14:18 |
| Судя по намекам MSDN анси версия поиска (FindFirstFile) внутри работает по системе 8.3 т.е. расширение файлов не должно иметь более 3 символов. В NT / 2000 / XP есть юникодная версия этой функции, которая работает с путями неограниченной длинны, и как следствие не должно быть ограничений по 8.3 Т.е. функции FindFirstFileW / FindNextFileW |
| Автор: Snowy 22.2.2007, 14:27 |
| Они обе работают по 8.3 И обе возвращают одинаковый результат. |
| Автор: W1zArD 22.2.2007, 15:26 | ||
а для проверки на наличие слеша в конце можно: 1. исп-ть функц IncludeLast из модуля FileCtrl что-то там ))) (я из кафе так что названия точно не помню) 2. проверять последний символ на '\' |
| Автор: Snowy 22.2.2007, 15:36 |
| Проблема не в коде, а в том, что у файла file.dllXXX расширение реально dll В этом можно убедиться, конвертнув в короткое имя. Поэтому поиск его в список и включает. |
| Автор: Snowy 22.2.2007, 15:58 |
| фильтруй вручную. хотя зачем? если расширение кривое, то это не твоя проблема. если я текстовик переименую в dll, что тогда? Я бы не фильтровал бы, а пробовал бы работпть. Если нет, значит не моё. |
| Автор: aktuba 22.2.2007, 16:27 | ||
В принципе у меня так и делается. Ищутся файлы с определенным расширением, подгружаю их как dll и проверяю, есть ли определенная функция... |