AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Mit Rekursiver-S. auch in versteckten Ordnern Dateien finden
Thema durchsuchen
Ansicht
Themen-Optionen

Mit Rekursiver-S. auch in versteckten Ordnern Dateien finden

Ein Thema von St.Pauli · begonnen am 5. Feb 2005 · letzter Beitrag vom 6. Feb 2005
Antwort Antwort
Benutzerbild von St.Pauli
St.Pauli

Registriert seit: 26. Dez 2004
351 Beiträge
 
Delphi 7 Personal
 
#1

Mit Rekursiver-S. auch in versteckten Ordnern Dateien finden

  Alt 5. Feb 2005, 12:28
Hi,

ich will ne suchfunktion machen, die auf der festplatte rekursiv auch in versteckten ordnern nach dateien sucht. habe aber kein plan wie ich das machen soll.
habe mir den quelltext für eine suche aus easyhelper geholt.

Code:
procedure GetFilesInDirectory(Directory: String; const Mask: String;
                              List: TStrings;
                              WithSubDirs, ClearList: Boolean);

procedure ScanDir(const Directory: String);
var
  SR: TSearchRec;
begin
  if FindFirst(Directory + Mask, ------> faAnyFile - faDirectory <------ , SR) = 0 then try
    repeat
      List.Add(Directory + SR.Name)
    until FindNext(SR) <> 0;
  finally
    FindClose(SR);
  end;

  if WithSubDirs then begin
    if FindFirst(Directory + '*.*', ------> faAnyFile <------ , SR) = 0 then try
      repeat
        if (SR.Attr = faDirectory) and
           (SR.Name <> '.') and (SR.Name <> '..') then
          ScanDir(Directory + SR.Name + '\');
      until FindNext(SR) <> 0;
    finally
      FindClose(SR);
    end;
  end;
end;

begin
  List.BeginUpdate;
  try
    if ClearList then
      List.Clear;
    if Directory = '' then Exit;
    if Directory[Length(Directory)] <> '\' then
      Directory := Directory + '\';
    ScanDir(Directory);
  finally
    List.EndUpdate;
  end;
end;
Ich muss doch die Attribute an den ------> <------ stellen verändern, damit er auch in versteckten ordnern sucht, oder? hab schon soviel ausporb und nix klappt. hoffentlich könnt ihr mir helfen.

__________________________________________________ _________________________
PS: keine angst, ------> <------ hab ich nicht in meinem Prog stehen, hab sie nurma für hier eingefügt
Gruß St.Pauli
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Mit Rekursiver-S. auch in versteckten Ordnern Dateien fi

  Alt 5. Feb 2005, 13:22
Moin St.Pauli,

der Fehler liegt hier:

if (SR.Attr = faDirectory) and die Abfrage muss heissen:

if ((SR.Attr and faDirectory) = faDirectory) and oder
if ((SR.Attr and faDirectory) <> 0) and Ausserdem solltest Du statt

faAnyFile - faDirectory besser
faAnyFile and not faDirectory schreiben.

In diesem Falle spielt das zwar keine Rolle, aber Bitfelder wie sollte man nur mit logischen Operationen verknüpfen, damit man es nicht falsch macht, wenn es eine Rolle spielt.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von St.Pauli
St.Pauli

Registriert seit: 26. Dez 2004
351 Beiträge
 
Delphi 7 Personal
 
#3

Re: Mit Rekursiver-S. auch in versteckten Ordnern Dateien fi

  Alt 5. Feb 2005, 17:36
OK, T H X!!!

Werd ich gleich mal ausprobieren!

Gruß St.Pauli
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Mit Rekursiver-S. auch in versteckten Ordnern Dateien fi

  Alt 6. Feb 2005, 23:36
Vielleicht hilft dir hier neben faDirectory auch faHidden.

MfG
Binärbaum
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz