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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.04.2011, 14:18   #1
MetR
Пользователь
 
Регистрация: 26.12.2008
Сообщений: 50
По умолчанию delphi как убрать из списка файлов '.' и '..'?


как избавиться от этого?

Код:
procedure tform1.fileList(lv:tlistview; path1:string);
var
sr1:TsearchRec;
atr:integer;
li:Tlistitem;
fi:TSHFileInfo;
res:HRESULT;
begin
lv.Clear;
atr:=faReadOnly+faDirectory;
res := SHGetFileInfo(nil, 0, fi, SizeOf(fi), SHGFI_SYSICONINDEX);
imglist.Handle := res;

if (FindFirst(path1 + '*', atr, sr1) = 0) then
   repeat
     li := lv.Items.Add();
     li.Caption := sr1.Name;
     ShGetFileInfo(PChar(path1+li.caption), 0, fi, SizeOf(fi), SHGFI_SYSICONINDEX or SHGFI_SMALLICON);
     li.ImageIndex := fi.iIcon;
   until (FindNext(sr1) <> 0);
FindClose(sr1);
end;
MetR вне форума Ответить с цитированием
Старый 05.04.2011, 14:50   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

добавлением добавьте проверку на эти имена.
примерно так:
Код:
if (FindFirst(path1 + '*', atr, sr1) = 0) then
   repeat
     if (sr1.Name<>'.') and (sr1.Name<>'..') then begin
       li := lv.Items.Add();
       li.Caption := sr1.Name;
       ShGetFileInfo(PChar(path1+li.caption), 0, fi, SizeOf(fi), SHGFI_SYSICONINDEX or SHGFI_SMALLICON);
       li.ImageIndex := fi.iIcon;
     end;
   until (FindNext(sr1) <> 0);
FindClose(sr1);
Serge_Bliznykov вне форума Ответить с цитированием
Старый 05.04.2011, 14:53   #3
MetR
Пользователь
 
Регистрация: 26.12.2008
Сообщений: 50
По умолчанию

не, так я пробовал, не получилось
MetR вне форума Ответить с цитированием
Старый 05.04.2011, 14:58   #4
MetR
Пользователь
 
Регистрация: 26.12.2008
Сообщений: 50
По умолчанию

это не просто файлы видимо, при выборе '..' выполняется переход в предыдущий каталог, а при выборе '.' вылетает ошибка
MetR вне форума Ответить с цитированием
Старый 05.04.2011, 15:13   #5
MetR
Пользователь
 
Регистрация: 26.12.2008
Сообщений: 50
По умолчанию

Код:
if lv.Items[0].Caption = '.' then
  begin
  lv.Items[0].Delete;
  lv.Items[0].Delete;
  end;
попробовал выполнить такую проверку в конце процедуры, эти строчки удаляются, но прога ругается при вызове процедуры вот на эту строчку
Код:
if lv.Items[0].Caption = '.' then
MetR вне форума Ответить с цитированием
Старый 05.04.2011, 15:32   #6
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Код:
if (FindFirst(path1 + '*', atr, sr1) = 0) then
   repeat
   if ((sr1.Name='.') or (sr1.Name='..')) and ((sr1.Attr and faDirectory) = faDirectory) then continue;
...
Должно же работать, что именно не получилось?

Цитата:
это не просто файлы видимо
Конечно, точка обозначает текущий каталог, две точки - родительский
пыщь

Последний раз редактировалось JTG; 05.04.2011 в 15:35.
JTG вне форума Ответить с цитированием
Старый 05.04.2011, 15:38   #7
MetR
Пользователь
 
Регистрация: 26.12.2008
Сообщений: 50
По умолчанию

Цитата:
Сообщение от JTG Посмотреть сообщение
Код:
if (FindFirst(path1 + '*', atr, sr1) = 0) then
   repeat
   if ((sr1.Name='.') or (sr1.Name='..')) and ((sr1.Attr and faDirectory) = faDirectory) then continue;
...
Должно же работать, что именно не получилось?


Конечно, точка обозначает текущий каталог, две точки - родительский
спасибо, так все нормально работает
MetR вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как убрать скроллбар из выподающего списка в Excel Nynexerasebe Microsoft Office Excel 7 15.09.2010 10:21
Как убрать пробелы из списка excel HELLENVLM Microsoft Office Excel 9 23.02.2010 22:55
Как убрать программы из списка выбора программ evgenii0494 Операционные системы общие вопросы 8 15.02.2010 20:35
Программа получения списка файлов директории и изменения атрибутов файлов roma86 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 7 09.06.2009 09:08
Печать pdf файлов из списка файлов в Excel АПС Microsoft Office Excel 5 15.04.2008 16:04