[Delphi] Zrobienie listy plików - rozwiązanie

0

Witam!
W sumie to się nudzę :). Taak.... i co człowiek znudzony może robić? Ano ułatwiac sobie vel innym życie. Tym razem postanowiłem wyjaśnić sprawę robienia listy plików w systemie, jako że wiele osób pytało w ogóle.

A więc tak - założenie jest następujące:

  1. Pobierz . z folderu - dodaj do listboxa.
  2. Sprawdzaj od pierwszej pozycji w ListBoxie do ostatniej czy dany plik jest folderem - jesli jest idź do jedynki, jeśli nie sprawdzaj następny.

i to by było w sumie wszystko :). Teraz kod:

procedure tform1.folder(jaki:string; Sender: TObject);
var
sr: TSearchRec;
begin

if FindFirst(jaki+'.', faAnyFile, sr) = 0 then
begin
repeat
if (not (sr.Name='.')) and (not (sr.Name='..')) then ListBox.items.add(jaki+''+sr.Name);
until FindNext(sr) 0;
FindClose(sr);
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
ListBox.Items.Clear;
folder(edit1.text, ListBox);

i:=0;
repeat
if DirectoryExists(ListBox.items[i]) then begin
folder(ListBox.items[i],ListBox);
ListBox.Items.Delete(i) end
else
i:=i+1;
until i>ListBox.Count-1;

end;

Proste, nieprawdaż? :)
Rozwiązanie jest przede wszystkim.... zbyt długie - nie nadaję się do żadnego szanującego się trojana - przesłanie takiej ilości jest samobójstwem - sprawdźcie sobie ile takie coś zajmie dla całego dysku.... [u mnie trwało to 4 min - mały dysk :]

To co w algorytmie można poprawić to algorytm. Na jaki?

:main
Dodaj pozycję: "[folder]"

  • Wypisz pierwszy element .
  • Sprawdź czy jest folderem
  • tak -> idź do main ze zmienionym folderem
  • nie -> Wypisz następny element.

Mam nadzieję, że wszyscy łapią - zamiast:
C:\Moje Dokumenty\rysunki\obrazek.jpg
C:\Moje Dokumenty\rysunki\obrazek2.jpg
C:\Moje Dokumenty\rysunki\obrazek3.jpg
C:\Moje Dokumenty\mój dokument1.doc
C:\Moje Dokumenty\mój dokument2.doc
C:\pliczek1.txt
C:\pliczek2.txt
C:\pliczek3.txt

Będziemy mieć:
[C:]
[Moje Dokumenty]
[rysunki]
obrazek.jpg
obrazek2.jpg
obrazek3.jpg
#end
mój dokument1.doc
mój dokument2.doc
#end
pliczek1.txt
pliczek2.txt
pliczek3.txt
#end

Użyta nomenklatura jest oczywiście przypadkowa - mam nadzieję, że zrozumiała dla wszystkich.
Tego algorytmu implementacji jednak nie podam - powód prowizoryczny - nie chce mi się :). Ot tak nie wiele, a jednak - chodzi o to, że mi ta wystarcza, a ja baaardzo złym "chackerom" robiącym mi baaardzo złe trojany pomagać nie będe :)
Jeśli jednak czytelnik zrozumiał o co biega i troszkę pomysli to sam napisze - nie można dawać wszytskiego na tacy.
Tio tyle na dziś - wiem, ze post przepadnie, ale przynajmniej będzie można robić odnośnik :)

p.s. Drogi Kapustko - niestety nie jestem kobietą :)

0

Zapraszamy do dzialu Gotowce...

0

[CIACH!]

Rozwiązanie jest przede wszystkim.... zbyt długie - nie nadaję się do żadnego szanującego się trojana - przesłanie takiej ilości jest samobójstwem - sprawdźcie sobie ile takie coś zajmie dla całego dysku.... [u mnie trwało to 4 min - mały dysk :]

[CIACH!]

hmmm... mój trojan pobiera tylko zawartośc jednego katalogu
a po kliknięciu na jakiś pod katalog pobiera zawartość podkatalogu
itd...

:p

1 użytkowników online, w tym zalogowanych: 0, gości: 1