Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.10.2012, 15:54   #1
Zis67
Пользователь
 
Аватар для Zis67
 
Регистрация: 06.04.2011
Сообщений: 80
По умолчанию Как найти файл в папке, если в имени папки есть точка?

При поиске файла выдаёт ошибку синтаксиса, я так понимаю что это из-за того что в имени папки содержится точка и программа воспринимает папку как файл:
...
var s,f,n,r: string;
...
s:=('C:\Program Files\*.application\');
f:=('yyy*.xxx');
n:=s+f;
FindRes := FindFirst(n, faAnyFile, SR);
r:=s+SR.Name;
FindClose(SR);
Можно-ли это как-то исправить или использовать другой способ поиска?

Последний раз редактировалось Zis67; 03.10.2012 в 16:03.
Zis67 вне форума Ответить с цитированием
Старый 03.10.2012, 16:01   #2
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

Что у Вас хранится в переменной n?
FaTaL вне форума Ответить с цитированием
Старый 03.10.2012, 16:08   #3
Zis67
Пользователь
 
Аватар для Zis67
 
Регистрация: 06.04.2011
Сообщений: 80
По умолчанию

Складывается значение переменных. Я привёл немного упрощённый код. В оригинале:
n:=s+GetUserFromWindows+f;
Вставляем имя активного пользователя.
Zis67 вне форума Ответить с цитированием
Старый 03.10.2012, 16:28   #4
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

Конечно Вы папку то как задали через *. Это ошибка синтаксиса, а не точка. В имени папки не может быть звёздочки!
FaTaL вне форума Ответить с цитированием
Старый 03.10.2012, 17:29   #5
Zis67
Пользователь
 
Аватар для Zis67
 
Регистрация: 06.04.2011
Сообщений: 80
По умолчанию

Спасибо, исправил, заработало. Просто неизвестно имя папки до точки, поэтому пробовал по томуже принципу что и в случае с файлом- неизвестную часть задать *.
Zis67 вне форума Ответить с цитированием
Старый 03.10.2012, 18:13   #6
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

Ну если много папок с именами ???.application, то сначала ищешь эти папки, заносишь их в массив строк, а потом по этому массиву пробегаешься.
FaTaL вне форума Ответить с цитированием
Старый 03.10.2012, 18:42   #7
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

* можно и оставить, просто надо проверять свойство
Код:
if (SR.Attr and faDirectory) <> faDirectory then это_не_папка
eoln вне форума Ответить с цитированием
Старый 03.10.2012, 19:13   #8
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

Цитата:
Сообщение от eoln Посмотреть сообщение
* можно и оставить, просто надо проверять свойство
Код:
if (SR.Attr and faDirectory) <> faDirectory then это_не_папка
Звезда не может быть в имени папки или файла. См. выше.
FaTaL вне форума Ответить с цитированием
Старый 03.10.2012, 19:30   #9
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Цитата:
Сообщение от FaTaL Посмотреть сообщение
Звезда не может быть в имени папки или файла. См. выше.
Может. Это называется маска. Только уточню немного
c:\*files\*.exe - нельзя (придётся разделить на подзадачи)
c:\ program files\*.exe - можно
eoln вне форума Ответить с цитированием
Старый 03.10.2012, 20:32   #10
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

Вот я об этом выше и писал.
FaTaL вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка есть ли файл в папке!!! angelada Общие вопросы C/C++ 5 20.01.2011 13:17
найти файл зная лишь часть его имени DeDoK Общие вопросы Delphi 3 16.12.2010 21:06
Найти файл в заданной папке или её подпапках igor_564 Помощь студентам 2 25.03.2010 20:38
Как скомпилировать прогу, если у меня есть только *.cpp файл? TwiX Общие вопросы C/C++ 4 13.11.2009 21:13
как определить какие файлы есть в папке и вывести их имена в текстовый файл Tdoctor Паскаль, Turbo Pascal, PascalABC.NET 3 04.11.2008 05:18