Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];

Вниз

Не могу найти скрытые файлы   Найти похожие ветки 

 
Sicilla ©   (2005-01-30 18:13) [0]

Добрый день! есть такой код:
procedure Tform1.get_files(path, mask: string);
var
 sr: TSearchRec;
 FileAttrs: integer;
begin
    FileAttrs := faReadOnly + faHidden + faSysFile + faArchive + faDirectory;
    if FindFirst(path+"\"+mask, FileAttrs, sr) = 0 then
    begin
     repeat
           if (SR.Name <>".") and (SR.Name <>"..") then
              begin
                   if SR.Attr > 16 then
                      begin
                           inc(find_files);
                           memo1.Lines.Add(inttostr(find_files) + " " + path+"\"+sr.Name + " Size:" + inttostr(sr.Size));
                      end;
                   if sr.Attr = 16 then
                      begin
                           memo1.Lines.Add("Каталог " + path+"\"+sr.Name);
                           get_files(path+"\"+sr.Name,"*.*");
                      end;
              end;
     until FindNext(sr) <> 0;
     FindClose(sr);
   end;
   Label2.Caption := inttostr(find_files);
end;

Но он никак не хочет находить скрытые файлы. Как мне их поймать?


 
Fay ©   (2005-01-30 20:15) [1]

Вот так. Обрати внимание : здесь cPath включает, как завещал ExtactFilePath 8)
procedure TForm1.GetFiles(cPath, cMask : string);
var
 fh : THandle;
 fd : _WIN32_FIND_DATAA;
 fn : string;
 sz : LARGE_INTEGER;
begin
 fh := FindFirstFile(PChar(cPath + cMask), fd);
 if fh = INVALID_HANDLE_VALUE then Exit;
 Memo1.Lines.BeginUpdate;
 try
   repeat
     fn := Trim(fd.cFileName);
     if (fd.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) <> 0 then
       begin
         if (fn <> ".") and (fn <> "..") then
           begin
             Memo1.Lines.Add("Каталог " + cPath + fn);
             GetFiles(cPath + fn + "\", "*.*");
           end;
       end
     else
       begin
         sz.HighPart := fd.nFileSizeHigh;
         sz.LowPart := fd.nFileSizeLow;
         Inc(Files_Find);
         Memo1.Lines.Add(IntToStr(Files_Find) + " " + cPath + fn + " Size:" + IntToStr(sz.QuadPart));
       end;
   until not FindNextFile(fh, fd);
 finally
   Windows.FindClose(fh);
   Memo1.Lines.EndUpdate;
 end;
 Label2.Caption := IntToStr(Files_Find);
end;



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.044 c
9-1102707516
Zak3D[@Tm]
2004-12-10 22:38
2005.03.13
Привязка ко времени ( как это осуществляется )


14-1108752190
[wl]
2005-02-18 21:43
2005.03.13
домой холивар win vs linux


14-1108901620
kaZaNoVa
2005-02-20 15:13
2005.03.13
PHP-качалка сайтов


1-1109298096
Prove
2005-02-25 05:21
2005.03.13
Помогите разобраться с указателями


1-1109254455
Sen====
2005-02-24 17:14
2005.03.13
Stream read error





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский