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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.09.2010, 15:48   #11
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Shouldercannon такой код получше.
два замечания. Почему проверяете существование каталога заданного переменной RCText1 а выводите содержимое каталога Edit1.Text ?! Это в лучшем случае некрасиво, в худшем - ошибка или трудновылавливаемый глючок!
Надо, чтобы и там и там была ОДНА переменная (или RCText1 или Edit1.Text)!
ну и я бы всё же вынес закрытие FindClose за проверку.
Примерно вот так:
Код:
                  if DirectoryExists(Edit1.Text) then
                    begin
                      if FindFirst(IncludeTrailingBackslash(Edit1.Text) + '*.*', faAnyFile, searchResult) = 0 then
                        begin
                          repeat
                            Browse.Add(searchResult.Name);
                          until FindNext(searchResult) <> 0;
                        end;

                        // Должен освободить ресурсы, используемые этими успешными, поисками
                        FindClose(searchResult);
                    end;
p.s. и отказываться от функции IncludeTrailingBackslash я бы не рекомендовал!

p.p.s. Кстати, а вас не смущает, что в список содержимого папки добавляются папки с именами '.' и '..' ?!
Нет, нет, это не ошибка, просто иногда от них искусственно избавляются, чтобы пользователь не видел этих спец.каталогов...

Последний раз редактировалось Serge_Bliznykov; 02.09.2010 в 15:50.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.09.2010, 17:23   #12
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,899
По умолчанию

'.' и '..' пока не смущают. У меня в программе всё переведено на переменную типа string RCText1, сюда когда вставлял забыл подправить
Shouldercannon вне форума Ответить с цитированием
Старый 03.01.2012, 04:27   #13
k907
Новичок
Джуниор
 
Аватар для k907
 
Регистрация: 03.01.2012
Сообщений: 4
Вопрос

Позвольте уйти немного в сторону.
Используя UNC-пути можно создать, переименовывать и перемещать папки с названием ".." (независимо от ФС). Такие папки не видны в системе поскольку трактуются как переход в родительскую директорию, но их можно создать или удалить даже в командной строке:
Код:
>MD \\?\C:\..
>RD \\?\D:\dir1\.. //нельзя если папка не пустая
Такую папку можно увидеть с помощью команды DIR. В списке будут одна или две такие папки: первая - переход в родительскую директорию, а вторая и есть искомая. Но просмотреть содержимое нельзя.

Как вариант можно временно переименовать папку, а затем просканировать. Но можно ли обойтись без этого?
Любой дурак может написать код, понятный компьютеру. Хороший программист пишет код, понятный человеку.
k907 вне форума Ответить с цитированием
Старый 03.01.2012, 11:45   #14
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
This function is included for backward-compatibility only. New programs should use IncludeTrailingPathDelimiter.
насчет IncludeTrailingBackshash.

k907, не надо использовать системные имена папок.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.01.2012, 18:31   #15
Shouldercannon
Участник клуба Подтвердите свой е-майл
 
Аватар для Shouldercannon
 
Регистрация: 26.01.2008
Сообщений: 1,899
По умолчанию

Удалено пользователем

Последний раз редактировалось Shouldercannon; 11.01.2012 в 20:19.
Shouldercannon вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вывод содержимого street-walker Помощь студентам 1 04.03.2010 21:03
вывод содержимого папки [delphi] [Smarik] Помощь студентам 4 12.03.2008 14:30
Нужна программа для удаления содержимого папки DNK1980 Фриланс 6 11.02.2008 16:52
Запретить просмотр содержимого папки AidarBik Общие вопросы Delphi 2 19.12.2007 17:57