|
|
|
|
|
|
|
 |
 |
 |
Artykuły |
 |
|
Wyszukiwanie plików i katalogów
22:25:51 29.05.2005
@Gujet
Witam,
Dziś zajmiemy się wyszukiwaniem plików. Często mamy potrzebę znalezienia jakiegoś pliku/plików...np. przy pisaniu wirusów:) Rzecz jest bardzo prosta, a cały proces wyszukiwania opiera się na rekordzie „TSearchRec”, który zbudowany jest następująco:
Type
TSearchRec=record
Time:Integer; //1
Size:Integer; //2
Attr:Integer; //3
Name:TFileName; //4
ExcludeAttr:Integrer; //5
FindHandle:THandle; //6
FindData:TWin32FindData; //7
//1 – informacje o czasie utworzenia pliku.
//2 – rozmiar pliku.
//3 – atrybuty pliku:
- faReadOnly – tyko do odczytu.
- faHidden - ukryty.
- faSysVolume – plik systemowy.
- faVolumeID – etykieta woluminu.
- faDirectory - katalog.
- faArchive - zarchiwizowany.
- faAnyFile – dowolny plik.
//4 – nazwa pliku.
//5 i //6 – niestety nie wiem, co to jest:( Jeśli ktoś wie, to bardzo proszę o maila.)
//7 – bardziej szczegółowe informacje na temat pliku:
- dwFileAttributes – wyczerpującą informację na temat tego atrybutu znajdziecie w systemie pomocy pod hasłem: WIN32_FIND_DATA.
- ftCreationTime – czas utworzenia pliku.
- FtLastWriteime - czas ostatniej modyfikacji pliku.
- FtLastAccessTime – czas ostatniego dostępu do pliku.
Dobra, teraz przejdziemy już do praktyki. Żeby rozpocząć wyszukiwanie należy użyć funkcji „FindFirst”.
Var
Finder:TSearchRec;
Begin
FindFirst(‘C:*.*’,faAnyFile,Finder); //1
End;
//1 – najpierw podajemy miejsce, gdzie chcemy szukać wraz z maską – w naszym przypadku wszystko z katalogu głównego dysku C. Potem rodzaj pliku – u nas cokolwiek, czyli dowolne pliki i katalogi. Następnie wskazanie na nasz rekord.
No tak, ale teraz program znajdzie jeden plik/katalog i się skończy wyszukiwanie. Żeby temu zapobiec należy zbudować pętlę.
Var
Finder:TSearchRec;
Found:Integer; //liczba znalezionych obiektów.
Begin
Found:=FindFirst(‘C:*.*’,faAnyFile,Finder);
While (Found=0) do // dopóki liczba znalezionych obiektów nie będzie równa zero.
Begin
Memo1.Lines.Add(‘C:’+Finder.Name); // wrzuć sobie Memo na formę:)
Found:=FindNext(Finder); // kontynuacja wyszukiwania
End;
FinClose(Finder); // zakończenie wyszukiwania.
End;
To tyle, jeśli chodzi o wyszukiwanie plików/katalogów. Mam nadzieję, że ktoś się z tego czegoś nauczył:)
Gujet (gujet@o2.pl)
Komentarzy: 0 | Głosuj (1,
2,
3,
4,
5,
6) | Ocena: 3.23 | Czytane: 3275 |  |
 |
Komentarze |
 |
|
Musisz się zalogować aby mieć możliwość komentowania
|  |
|
 |
|
| Copyright © p-zone.pl |
|