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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.03.2014, 00:51   #1
HTTqp
Форумчанин
 
Регистрация: 20.12.2013
Сообщений: 164
По умолчанию Скрытые файлы

Привет всем, подскажите я загружаю в ListView список файлов и деректорий, у меня загружаются и скрытые и нет, а как сделать чтобы загружались все кроме скрытых?

Ввывожу список с помощью процедуры:

Код:
{Получение списка файлов и информации о них}
procedure TForm1.UpdateFile(LV:TListView;aPath:String);
var
Handle:THandle;
FindData:TWin32FindData;
temp_ext,Temp_Cap,result:String;
Folders:TStringList;
i,te:Byte;
begin
LV.Items.BeginUpdate; //Начинаем прорисовку списка файлов
LV.Items.Clear; //Очищаем LV
Handle:=FindFirstFile(PChar(aPath+'*.*'),FindData);
if Handle<>INVALID_HANDLE_VALUE then
 try
  Folders:=TStringList.Create;
  while FindNextFile(Handle,FindData) do
  begin
    Temp_Cap:=ExtractFileName(FindData.cFileName);
    temp_ext:=ExtractFileExt(FindData.cFileName);
    if (FindData.dwFileAttributes and faDirectory)=faDirectory then
     begin
     Folders.append('['+Temp_Cap+']');
     end
     else
   with LV.Items.Add do begin
    if (FindData.dwFileAttributes and faDirectory)<>faDirectory then
    begin
      for te:=1 to length(Temp_Cap) do
      if Temp_Cap[te]='.' then
      Caption:=copy(Temp_Cap,1,te-1);
      SubItems.Add(Copy(temp_ext,2,Length(temp_ext)-1));
      SubItems.Add(FloatToStrF(FindData.nFileSizeHigh+FindData.nFileSizeLow,ffNumber,18,0));
    end
      else
      SubItems.Add('');
      SubItems.Add(FileTimeToDateTimeStr(FindData.ftLastWriteTime));
      Result:='';
      if (FILE_ATTRIBUTE_ARCHIVE and FindData.dwFileAttributes)>0 then Result:=Result+'a' else Result:=Result+'-';
      if (FILE_ATTRIBUTE_READONLY and FindData.dwFileAttributes)>0 then Result:=Result+'r' else Result:=Result+'-';
      if (FILE_ATTRIBUTE_HIDDEN and FindData.dwFileAttributes)>0 then Result:=Result+'h' else Result:=Result+'-';
      if (FILE_ATTRIBUTE_SYSTEM and FindData.dwFileAttributes)>0 then Result:=Result+'s' else Result:=Result+'-';
      SubItems.Add(Result);
    end;
   end;
  for i:=0 to Folders.count-1 do with LV.Items.insert(i) do
  begin
   SubItems.Add('[Папка]');
   SubItems.Add('');
   SubItems.Add(FileTimeToDateTimeStr(FindData.ftLastWriteTime));
   Caption:=Folders[i];
  end;
  Folders.free;
  finally
  LV.Items.EndUpdate;
  end;
end;
HTTqp вне форума Ответить с цитированием
Старый 01.03.2014, 01:36   #2
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,872
По умолчанию

Цитата:
Привет всем, подскажите я загружаю в ListView список файлов и деректорий, у меня загружаются и скрытые и нет, а как сделать чтобы загружались все кроме скрытых?

Ввывожу список с помощью процедуры:
Вы используете эту процедуру именно в том виде, в котором её нарыли? Или что-то в ней меняли по своему уразумению?
northener вне форума Ответить с цитированием
Старый 02.03.2014, 01:35   #3
HTTqp
Форумчанин
 
Регистрация: 20.12.2013
Сообщений: 164
По умолчанию

Да менял, так как мне требовалось помимо вывода списка еще и получить информацию о нем, а так же отсортировать список.
HTTqp вне форума Ответить с цитированием
Старый 02.03.2014, 02:25   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Дам подсказку:
Код:
      if (FILE_ATTRIBUTE_ARCHIVE and FindData.dwFileAttributes)>0 then Result:=Result+'a' else Result:=Result+'-';
      if (FILE_ATTRIBUTE_READONLY and FindData.dwFileAttributes)>0 then Result:=Result+'r' else Result:=Result+'-';
      if (FILE_ATTRIBUTE_HIDDEN and FindData.dwFileAttributes)>0 then Result:=Result+'h' else Result:=Result+'-';
      if (FILE_ATTRIBUTE_SYSTEM and FindData.dwFileAttributes)>0 then Result:=Result+'s' else Result:=Result+'-';
      SubItems.Add(Result);
Человек_Борща вне форума Ответить с цитированием
Старый 02.03.2014, 02:41   #5
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,872
По умолчанию

Цитата:
Сообщение от HTTqp Посмотреть сообщение
Да менял, так как мне требовалось помимо вывода списка еще и получить информацию о нем, а так же отсортировать список.
Ну раз вы уже меняли, то сможете и ещё раз поменять с помощью подсказки в ответе Человек_Борща.
northener вне форума Ответить с цитированием
Старый 17.03.2014, 19:07   #6
HTTqp
Форумчанин
 
Регистрация: 20.12.2013
Сообщений: 164
По умолчанию

правильно ли я делаю
Код:
 if (FindData.dwFileAttributes and faDirectory)=(FILE_ATTRIBUTE_HIDDEN and FindData.dwFileAttributes) then
    begin
...
end;
только не пойму куда вставить, пробовал у меня либо только папки выводятся либо вообще ничего.
HTTqp вне форума Ответить с цитированием
Старый 17.03.2014, 19:49   #7
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,872
По умолчанию

Цитата:
Сообщение от HTTqp Посмотреть сообщение
правильно ли я делаю
Код:
 if (FindData.dwFileAttributes and faDirectory)=(FILE_ATTRIBUTE_HIDDEN and FindData.dwFileAttributes) then
    begin
...
end;
только не пойму куда вставить, пробовал у меня либо только папки выводятся либо вообще ничего.
Нет неправильно. Даже если оно и работает.
northener вне форума Ответить с цитированием
Старый 17.03.2014, 20:51   #8
HTTqp
Форумчанин
 
Регистрация: 20.12.2013
Сообщений: 164
По умолчанию

Цитата:
Сообщение от northener Посмотреть сообщение
Нет неправильно. Даже если оно и работает.
А как тогда? Вроде бы на это намек был.
HTTqp вне форума Ответить с цитированием
Старый 17.03.2014, 21:44   #9
XE5
Заблокирован
 
Регистрация: 02.03.2014
Сообщений: 439
По умолчанию

HTTqp Ваши проблемы следствие одного единственного навыка. Умения копировать чужое. Решение просто и логично

Код:
  begin
     Folders.append('['+Temp_Cap+']');
     end
     else
   if (FILE_ATTRIBUTE_HIDDEN and FindData.dwFileAttributes) = 0 then // вставлено одно единственное условие. Сложно?
   with LV.Items.Add do begin
    if (FindData.dwFileAttributes and faDirectory)<>faDirectory then
    begin
XE5 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрытые файлы, архивы и блокировка MyLastHit Общие вопросы Delphi 10 12.12.2010 11:44
Скрытые файлы в ShellListView artemavd Общие вопросы Delphi 9 10.01.2010 20:45
Не видны скрытые файлы ZahAlex Операционные системы общие вопросы 3 13.12.2009 21:00
Скрытые файлы!! Merphi Безопасность, Шифрование 16 03.08.2009 15:07
Неотображаюца скрытые файлы! Ermiss Безопасность, Шифрование 6 26.12.2008 11:56