Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Warum findet Findfirst nicht alle dateien ? (https://www.delphipraxis.net/100395-warum-findet-findfirst-nicht-alle-dateien.html)

Corpsman 27. Sep 2007 17:36


Warum findet Findfirst nicht alle dateien ?
 
HAllo miteinand,

ich wollte mir ein kleines Tool bauen das meine Festplatte nach Dateien durchsuchen kann ( da das in WinXP ja meinstens nicht sauber geht ). Im Wesentlichen hab ich es gemacht, weil mein Tool so schön wie der suchen Dialog aus Win98 gestaltet ist.

Nun habe ich folgende Procedure die das suchen macht

Delphi-Quellcode:
Procedure GetFilesInDirectory(ADirectory: String; AMask: String; ARekursiv: Boolean);
Var
  SR: TSearchRec;
Begin
  If (ADirectory <> '') Then
    If (ADirectory[length(ADirectory)] <> '\') Then
      ADirectory := ADirectory + '\';

  If (FindFirst(ADirectory + AMask, faAnyFile And Not faDirectory, SR) = 0) Then Begin
    Repeat
      If (SR.Name <> '.') And (SR.Name <> '..') Then
        AddFinding(ADirectory + SR.Name, SR.size);
    Until FindNext(SR) <> 0;
    FindClose(SR);
  End;

  If ARekursiv Then
    If (FindFirst(ADirectory + '*.*', faDirectory, SR) = 0) Then Begin
      Repeat
        If (SR.Name <> '.') And (SR.Name <> '..') And (SR.Attr And FaDirectory = FaDirectory) Then Begin
          GetFilesInDirectory(ADirectory + SR.Name, AMask, {AList,} True);
      Until FindNext(SR) <> 0;
      FindClose(SR);
    End;
End;
Das Problem ist nun aber das diese Procedure Dateien die in

C:\Dokumente und Einstellungen\Administrator\Anwendungsdaten\

liegen nicht findet.

weis zufällig jemand wieso ?

bzw wie ich das beheben kann.

Habe auch mal ausgeben lassen in welchen Verzeichnissen der Rechner sucht. und witzigerweise findet er dieses Verzeichnis gar nicht. Klar das er dann darin auch nicht sucht...

Corpsman 27. Sep 2007 17:37

Re: Warum findet Findfirst nicht alle dateien ?
 
lol ich habs rausgefunden

FAhidden hat gefehlt.

dieses Verzeichniss ist versteckt..

SirThornberry 27. Sep 2007 18:04

Re: Warum findet Findfirst nicht alle dateien ?
 
waru machst du 2 schleifen mit findFirst. Nimm einfach eine einzelne und prüfen dann darin ob es sich um ein verzeichnis handelt oder nicht

Mackhack 27. Sep 2007 18:05

Re: Warum findet Findfirst nicht alle dateien ?
 
Das gleiche passiert dir auch mit der Windowseigenen Suchfunktion. Such mal ne File die in einem der versteckten Verzeichnisse liegt. Findet es nicht, bzw. zeigt es dir als Suchergebnis einfach nicht an!

Dezipaitor 28. Sep 2007 10:43

Re: Warum findet Findfirst nicht alle dateien ?
 
Zitat:

Zitat von Mackhack
Das gleiche passiert dir auch mit der Windowseigenen Suchfunktion. Such mal ne File die in einem der versteckten Verzeichnisse liegt. Findet es nicht, bzw. zeigt es dir als Suchergebnis einfach nicht an!

Du musst in den Einstellungen "Weitere Optionen" den Haken vor "Versteckte Elemente durchsuchen" einschalten, damit er alles findet.

himitsu 30. Okt 2007 08:33

Re: Warum findet Findfirst nicht alle dateien ?
 
theoretisch sollten diese Optionen wohl helfen, aber irgendwie is vorallem seit XP da einiges an der Windowssuche futsch.

der findet einiges nicht
dann duchsucht dieses ding z.B. nahezu jede ZIP und was darin gefunden wird kann man nicht irchitg zuordnen
und mit abeaschaltetet Indexfunktion der Plättchen geht fast nüschts mehr korret,
vorallem beim Durchsuchen der Dateiinhalte.


hatte mir vor Ewigkeiten da och mal sowas gebastelt, nur 'nen extremen Happen einfacher), aber mehr brauchte ich eigentlich nicht.
aber wenn du dann mal fertig bist ... kannst ja gerne mal Zeigen was rausgekommmen ist ^^


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:37 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