Einzelnen Beitrag anzeigen

ThE_-_BliZZarD

Registriert seit: 15. Sep 2006
Ort: Wiesbaden/Hessen
89 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Problem beim Dateiensuchen -> Unicode + Gesperrte Ord

  Alt 12. Mai 2007, 14:06
na, ich poste hier mal den kompletten Code.. ^^

Delphi-Quellcode:
function GetDirContents(pfad: String; prestr: String): Integer;
var
   searchResult : TSearchRec;
   ergebnisse: TSRDynArray;
   SL, tmp: TStringlist;
   i, j: integer;
begin
  i := 0;
  j := 0;

  SetLength(ergebnisse, 0);
  SetCurrentDir(pfad);

  FMain.AppendStringToFile(prestr+' Verzeichnis von '+pfad, pfad_zur_liste);
  FMain.AppendStringtoFile(prestr+' ', pfad_zur_liste);

  if FindFirst('*', faAnyFile, searchResult) = 0 then
  begin
    repeat
      Application.ProcessMessages;
      SetLength(ergebnisse, (Length(ergebnisse)+1));

      if ((searchResult.Attr and faDirectory) = faDirectory) then begin
         ergebnisse[i].is_directory := true;
         ergebnisse[i].name := searchResult.Name;
         ergebnisse[i].size := 0;
      end
      else begin
         ergebnisse[i].is_directory := false;
         ergebnisse[i].name := searchResult.Name;
         ergebnisse[i].size := searchResult.Size;
      end;
      Application.ProcessMessages;
      Inc(i);
    until FindNext(searchResult) <> 0;

    // Must free up resources used by these successful finds
    FindClose(searchResult);
    for i := 0 to (Length(ergebnisse)-1) do begin
       Application.ProcessMessages;
       if (ergebnisse[i].is_directory) then begin
          if ((ergebnisse[i].name <> '.') AND (ergebnisse[i].name <> '..')) then begin
            Application.ProcessMessages;
            GetDirContents(pfad+ergebnisse[i].name+'\', prestr+' ');
            SetCurrentDir(pfad);
          end;
       end
       else begin
          Application.ProcessMessages;
          FMain.AppendStringtoFile(prestr+' - '+ergebnisse[i].name+' '+IntToStr(ergebnisse[i].Size)+' Bytes', pfad_zur_liste);
       end;
    end;
    Application.ProcessMessages;
    FMain.AppendStringtoFile(prestr+' ', pfad_zur_liste);
  end
  else begin
     FMain.AppendStringtoFile(prestr+' Keine Elemente.', pfad_zur_liste);
     FMain.AppendStringtoFile(prestr+' ', pfad_zur_liste);
  end;
  Result := 0;
end;
Hier wird die Funktion aufgerufen:
GetDirContents('F:\', '');
MSVC2008 (C/C++ with QT), Delphi RAD 2010, Flash CS5 (FDT/Adobe), Java EE (Eclipse), PHP5
Antwortsprachen: Deutsch, Englisch, Französisch, Japanisch
  Mit Zitat antworten Zitat