[Delphi] Programik szukający

0

Wiem... ten temat poruszany jest po raz n-ty...Poniżej znajduje sie procedura, która znajduje określone pliki w folderze i jego podfolderach, wyniki wrzuca na memo, ale nie wiem co zrobić, aby nie wrzucała tam nazw podfolderów, np:
C:\moj1\plik1.doc
C:\moj1\plik2.doc
C:\moj1\moj1a - ma być bez tego
C:\moj1\moj1a\plik3.doc

Mam do napisania programik, który przeszukuje folder i podfoldery, znajduje pliki *.doc - tworzy folder Word i je przenosi, pliki *.xls- tworzy Excel i je przenosi. Jeżeli ktos miałby źródło czegos takiego lub podobnego to proszę mi podesłać... próbuje do tego dojść na różne sposoby ale jakoś nie wychodzi... Z góry thx :)

procedure TForm1.AddDirSbClick(Sender: TObject);
var Dir : string;
// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
procedure Findme(StartDir: string);
var SR : TSearchRec;
Found : integer;
begin
if StartDir[Length(StartDir)] then StartDir:=StartDir+;
Found := FindFirst(StartDir + '*.doc', faAnyFile mod faDirectory, SR );
while Found = 0 do
begin
Memo.Lines.Add(Startdir + SR.Name);
Found := FindNext( SR );
end;
FindClose( SR );

  // wyszukiwanie podkatalogów:
  Found := FindFirst(StartDir + '*.*', faAnyFile, SR );
  while Found = 0 do
  begin
    if ((SR.Attr and faDirectory) = faDirectory) and
   (SR.Name  '.') and (SR.Name  '..') then
    begin
      Findme(StartDir+SR.Name);

Memo.Lines.Add(startdir + SR.Name);
end;
Found := FindNext(SR);
end;
FindClose(SR );
end;

begin
SelectDirectory('Wybierz katalog :','My Computer',Dir);
Findme(Dir+'\plik1');
end;

0

procedure Findme(StartDir: string);
var SR : TSearchRec;
Found : integer;
begin
if StartDir[Length(StartDir)] then StartDir:=StartDir+;
Found := FindFirst(StartDir + '*.doc', faAnyFile mod faDirectory, SR );
while Found = 0 do
begin
Memo.Lines.Add(ExtractFileName(Startdir + SR.Name));
Found := FindNext( SR );
end;
FindClose( SR );

// wyszukiwanie podkatalogów:
Found := FindFirst(StartDir + '.', faAnyFile, SR );
while Found = 0 do
begin
if ((SR.Attr and faDirectory) = faDirectory) and
(SR.Name '.') and (SR.Name '..') then
begin
Findme(StartDir+SR.Name);
Memo.Lines.Add(ExtractFileName(startdir + SR.Name));
end;
Found := FindNext(SR);
end;
FindClose(SR );
end;

begin
SelectDirectory('Wybierz katalog :','My Computer',Dir);
Findme(Dir+'plik1');
end;

niewiem czy o to Tobie chodziło - miało wpisywac w memo same nazwy plików?

0

to chyba nie to... w memo nie powinno być folderów:

C:\folder1\plik1.doc
C:\folder1\plik2.doc
C:\folder1\plik3.doc
C:\folder1\folder1a\plik1.doc
C:\folder1\folder1a\plik4.doc
C:\folder1\folder1a - jak się pozbyć nazw tych folderów
C:\folder1\folder1b - jak się pozbyć nazw tych folderów

0

ExtractFileName

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