|
Вопрос # 5 871/ вопрос открыт / |
|
Доброго времени суток, уважаемые эксперты!
При выводе содержимого папки наблюдаются . и ..
.. каким-то образом проходит проверку. Что не так?
Приложение: Переключить в обычный режим- procedure ListFileDir(Path: string; FileList: TStrings);
- var
- SR: TSearchRec;
- begin
- if FindFirst(Path + '*.*', faAnyFile, SR) = 0 then
- begin
- repeat
- if (SR.Attr <> faAnyFile) then
- if not (SR.Name = '.') or (SR.Name = '..') then FileList.Add(SR.Name);
- until FindNext(SR) <> 0;
-
- FindClose(SR);
- end;
- end;
 |
Вопрос задал: Shouldercannon (статус: Посетитель)
Вопрос отправлен: 11 января 2012, 19:26
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Вадим К
Здравствуйте, Shouldercannon!
Просто проверка неверная.
Смотрим по вариантам.
1) SR.Name = '.'
будет not true or false = false
2) SR.Name = '..'
будет not false or true = true
3) какое то имя
будет not false or false = true
поэтому, правильно писать так
if not ((SR.Name = \'.\') or (SR.Name = \'..\')) then FileList.Add(SR.Name);
или так
if not (SR.Name = \'.\') and not (SR.Name = \'..\') then FileList.Add(SR.Name);
или так
if (SR.Name <> \'.\') and (SR.Name <> \'..\') then FileList.Add(SR.Name);
 |
Ответ отправил: Вадим К (статус: Академик)
Время отправки: 11 января 2012, 19:54
Оценка за ответ: 5
Комментарий к оценке: Спасибо за помощь
|
Мини-форум вопроса
Всего сообщений: 4; последнее сообщение — 13 января 2012, 23:32; участников в обсуждении: 3.
|
Shouldercannon (статус: Посетитель), 11 января 2012, 20:06 [#1]:
Смущают
[code]\'.\'[\code] и [code]\'..\'[\code]
Illegal character in input file: '\' ($5C)
|
|
Ерёмин А.А. (статус: *Администратор), 11 января 2012, 20:35 [#2]:
Вадим К: как ты умудрился отправить со слэшами? Вроде этой проблемы на сайте давно нет.
|
11 января 2012, 21:30: Вопрос перемещён из тематического раздела Delphi » Общие вопросы по программированию в раздел Delphi » Работа с файловой системой модератором Ерёмин А.А.
|
Shouldercannon (статус: Посетитель), 11 января 2012, 22:20 [#3]:
Всеголишь дополнительных скобок не хватало Спасибо за корректировку
|
|
bugmenot (статус: 3-ий класс), 13 января 2012, 23:32 [#4]:
Цитата (Ерёмин А.А.):
Вроде этой проблемы на сайте давно нет.
Еще как есть
виконання програми розпочинається з того самого мiсця, де призупинилося.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|