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 Versteckte Ordner listen (https://www.delphipraxis.net/158484-versteckte-ordner-listen.html)

Cyberstorm 19. Feb 2011 12:02

Versteckte Ordner listen
 
Hallo. Ich programmiere gerade an einer Backuplösung. Diese soll auch Dateien in versteckten Ordnern sichern wie z.B. den Inhalt der "__history" Ordner von Delphi-Projekten.

Leider listed die Funktion die ich benutze diese nicht und ich habe dazu auch nichts im Netz gefunden.
Hier ist die Funktion die ich nutze:

Delphi-Quellcode:
function ListFilesRecursive(Path, Mask: String; ShowPath: Boolean): TStringList;
var
  SR: TSearchRec;
  Erg, I: Integer;
  RelDir, TempStr : String;
  TempList: TStringList;
begin
  if Path[length(Path)] <> '\' then Path:=Path + '\';
  RelDir:=ExtractFilePath(Mask);
  Mask:=ExtractFileName(Mask);
  result:=TStringList.Create;
  TempList:=TStringList.Create;
  Erg:=FindFirst(Path + RelDir + '*.*', faDirectory, SR);
  while Erg=0 do
    begin
      if (SR.attr and faDirectory) <> 0 then
       if SR.Name[1] <> '.' then
        begin
          TempList.Assign(ListFilesRecursive(Path, RelDir + SR.Name + '\' + Mask, ShowPath));
          for I:=0 to TempList.Count-1 do
            begin
              TempStr:=TempList[I];
              if ShowPath and not (TempStr[2]=':') then TempStr:=Path+TempStr;
              result.Add(TempList[I]);
            end;
        end;
      Erg:=FindNext(SR);
    end;
  Erg:=FindFirst(Path + RelDir + Mask, $27, SR);
  {Das Attribut $27 bedeutet alle echten Dateien}
  while Erg = 0 do
    begin
      if not ShowPath then result.Add(RelDir + SR.Name)
       else result.Add(Path+RelDir + SR.Name);
      Erg:=FindNext(SR);
    end;
  SysUtils.FindClose(SR);
  TempList.Free;
end;
Mein Aufruf der Funktion:
Delphi-Quellcode:
procedure whatever;
var
  sl: TStringList;
begin
  sl:=ListFilesRecursive('c:\whatever\', '*.*', true);
  ...
  FreeAndNil(sl);
end;
Vielen Dank & Grüße

vergessen 19. Feb 2011 12:33

AW: Versteckte Ordner listen
 
http://www.delphipraxis.net/33234-fi...eichnisse.html

Cyberstorm 19. Feb 2011 13:04

AW: Versteckte Ordner listen
 
Zitat:

Zitat von vergessen (Beitrag 1082835)

Ich finde keine Lösung in diesem Thread zu meinem Problem...

Versteckte/Schreibgeschützte Dateien werden ja gefunden, nur versteckte Ordner und deren Inhalte nicht...

DeddyH 19. Feb 2011 13:09

AW: Versteckte Ordner listen
 
Versuch es einmal mit dieser Konstanten:
Delphi-Quellcode:
const
  faNewAnyFileEx = $00017FFF;
Die benutzt Du zum Suchen und fragst anschließend das faDirectory-Attribut ab.

rollstuhlfahrer 19. Feb 2011 13:11

AW: Versteckte Ordner listen
 
dir fehlen bei FindFirst die beiden Argumente: faHidden und faSysFile damit du versteckte Dateien/Ordner und System-Dateien/Ordner bekommst.

Bernhard

Cyberstorm 19. Feb 2011 13:19

AW: Versteckte Ordner listen
 
Zitat:

Zitat von DeddyH (Beitrag 1082840)
Versuch es einmal mit dieser Konstanten:
Delphi-Quellcode:
const
  faNewAnyFileEx = $00017FFF;
Die benutzt Du zum Suchen und fragst anschließend das faDirectory-Attribut ab.

Zitat:

Zitat von rollstuhlfahrer (Beitrag 1082841)
dir fehlen bei FindFirst die beiden Argumente: faHidden und faSysFile damit du versteckte Dateien/Ordner und System-Dateien/Ordner bekommst.

Bernhard

Danke euch, damit klappt es nun :-).


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