AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Ordner prüfen ob er leer ist

Ein Thema von SaFu · begonnen am 17. Mär 2008 · letzter Beitrag vom 9. Mai 2008
Antwort Antwort
Seite 3 von 4     123 4      
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#21

Re: Ordner prüfen ob er leer ist

  Alt 17. Mär 2008, 11:02
@Manuel: Fehlt da nicht ein FindNext?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#22

Re: Ordner prüfen ob er leer ist

  Alt 17. Mär 2008, 11:03
@Muhkuh: Aber auch deine Funktion erkennt Directories als Files - oder??
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#23

Re: Ordner prüfen ob er leer ist

  Alt 17. Mär 2008, 11:04
jetzt bin total verwirrt bei mir funktioniert so gut wie keine lösung richtig
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#24

Re: Ordner prüfen ob er leer ist

  Alt 17. Mär 2008, 11:05
Zitat von taaktaak:
@Muhkuh: Aber auch deine Funktion erkennt Directories als Files - oder??
Was wäre denn da so schlimm daran? Ein Verzeichnis, das Unterverzeichnisse enthält, ist eben auch nicht leer.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#25

Re: Ordner prüfen ob er leer ist

  Alt 17. Mär 2008, 11:08
Wieso schlimm, kommt natürlich auf die Aufgabenstellung an
Ralph
  Mit Zitat antworten Zitat
bluesbear

Registriert seit: 14. Dez 2005
Ort: Hahnstätten
355 Beiträge
 
Delphi 2007 Enterprise
 
#26

Re: Ordner prüfen ob er leer ist

  Alt 17. Mär 2008, 11:10
Jetzt kam ich ins grübeln, wie ich das eigentlich mache. Ganz tief unten in der Code-Kiste fand ich die Kanone, mit der ich auf den Spatz schieße:
Delphi-Quellcode:
procedure GetListOfFiles(FileList: TStrings; Source, FileMask: string;
    Attributes, IgnoreAttributes: Integer; Recurse: Boolean);
var SearchDir: string;
    SearchRec: TSearchRec;
    Res : Integer;
    DirList : TStringList;
    i : Integer;
begin
  DirList := TStringList.Create;
  try
    SearchDir := AddBackSlashL(Source);
    Res := SysUtils.FindFirst(SearchDir + FileMask, Attributes, SearchRec);
    while (Res = 0) and (SearchRec.Name > '') do begin
      if (SearchRec.Name <> '.') and (SearchRec.Name <> '..') and
         ((Attributes = faAnyFile) or ((SearchRec.Attr and Attributes) <> 0)) and
         ((IgnoreAttributes = 0) or ((SearchRec.Attr and IgnoreAttributes) = 0)) then begin
        FileList.Add(SearchDir + SearchRec.Name);
      end;
      Res := FindNext(SearchRec);
    end;
    if Recurse and ((Attributes and faDirectory) = 0) then begin // Unterordner durchsuchen
      GetListOfFiles(DirList, Source, '*.*', faDirectory, 0, True);
      for i:=0 to Pred(DirList.Count) do begin
        GetListOfFiles(FileList, DirList[i], FileMask, Attributes, 0, True);
      end;
    end;
  finally
    SysUtils.FindClose(SearchRec);
    DirList.Free;
  end;
end;

function IsDirEmpty(const Dir: string): Boolean;
var SL : TStringList;
begin
  SL := TStringList.Create;
  try
    GetListOfFiles(SL, Dir, '*.*', faAnyFile - faDirectory, 0, False);
    Result := SL.Count = 0;
  finally
    SL.Free;
  end;
end;
Nu, der Spatz ist garantiert tot!
Klaus M. Hoffmann
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#27

Re: Ordner prüfen ob er leer ist

  Alt 17. Mär 2008, 11:17
Noch' n Gedicht
Delphi-Quellcode:
function IsFolderEmpty(const Foldername: string): Boolean;
var Rec: TSearchRec;
begin
  Result := false;
  if FindFirst(IncludeTrailingPathDelimiter(Foldername) + '*.*',faAnyFile,Rec) = 0 then
    begin
      repeat
        Result := (Rec.Name = '.') or (Rec.Name = '..');
      until (FindNext(Rec) <> 0) or not Result;
      FindClose(Rec);
    end;
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#28

Re: Ordner prüfen ob er leer ist

  Alt 17. Mär 2008, 11:22
Zitat von DeddyH:
@Manuel: Fehlt da nicht ein FindNext?
Asche auf mein Haupt.
  Mit Zitat antworten Zitat
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#29

Re: Ordner prüfen ob er leer ist

  Alt 22. Mär 2008, 20:35
Ok Danke funktioniert so

gruss sascha
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

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

Re: Ordner prüfen ob er leer ist

  Alt 8. Mai 2008, 23:21
Zitat von DeddyH:
Noch' n Gedicht
Delphi-Quellcode:
function IsFolderEmpty(const Foldername: string): Boolean;
var Rec: TSearchRec;
begin
  Result := false;
  if FindFirst(IncludeTrailingPathDelimiter(Foldername) + '*.*',faAnyFile,Rec) = 0 then
    begin
      repeat
        Result := (Rec.Name = '.') or (Rec.Name = '..');
      until (FindNext(Rec) <> 0) or not Result;
      FindClose(Rec);
    end;
end;
Ich hätte dazu noch eine Idee

Delphi-Quellcode:
function IsDirectoryEmtpy(const AsFolder : string) : Boolean;

var
  sr : TSearchRec;

begin
  Result := FindFirst(IncludeTrailingPathDelimiter(AsFolder)+'*.*',faAnyFile,sr) = 0;
  if Result then begin
    try
      Result := (FindNext(sr) = 0) and (FindNext(sr) <> 0);
    finally
      FindClose(sr);
    end;
  end;
end;
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
Antwort Antwort
Seite 3 von 4     123 4      


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 16: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