Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi eine FilelistBox abfragen? (https://www.delphipraxis.net/96548-eine-filelistbox-abfragen.html)

smart 26. Jul 2007 12:33


eine FilelistBox abfragen?
 
Hallo Alle!

Kann man Abfragen, ob in eine FilelistBox Verzeichnisse sind oder nicht.

Gruß
Heike

SirThornberry 26. Jul 2007 12:44

Re: eine FilelistBox abfragen?
 
[OT]
Die Filelistbox ist veraltet und sollte nicht mehr verwendet werden (wenn man sicherstellen will das Sie auf zukünftigen Windowsversionen läuft)

DeddyH 26. Jul 2007 12:45

Re: eine FilelistBox abfragen?
 
AFAIK stellt eine FileListBox nur Dateien dar.

smart 26. Jul 2007 13:19

Re: eine FilelistBox abfragen?
 
Zitat:

Zitat von DeddyH
AFAIK stellt eine FileListBox nur Dateien dar.

Doch, die kann auch Verzeichnisse darstellen. Unter FileType kann man Verzeichnisse angeben. Aber gut wenn die FilelistBox zu alt ist. Wie könnte ich denn feststellen ob zB. im Verzeichnis C:\Test noch Unterverzeichnisse vorhanden sind. DirectoryExists kann ich nicht nehmen, weil man keine Platzhalter verwenden darf. Hat Einer von Euch einen Vorschlag?

Gruß
Heike

DeddyH 26. Jul 2007 13:29

Re: eine FilelistBox abfragen?
 
Mit FindFirst z.B.

bitsetter 26. Jul 2007 17:28

Re: eine FilelistBox abfragen?
 
Zitat:

Zitat von smart
Wie könnte ich denn feststellen ob zB. im Verzeichnis C:\Test noch Unterverzeichnisse vorhanden sind. DirectoryExists kann ich nicht nehmen, weil man keine Platzhalter verwenden darf. Hat Einer von Euch einen Vorschlag?

Hi,

so in etwa müsste es gehen.
Delphi-Quellcode:
function HasSubDir(Dir: AnsiString): boolean;
var
  SRec: TSearchRec;
begin
  Result:= false;
  if AnsiLastChar(Dir)<> '\' then
    Dir := Dir + '\';
  if FindFirst(Dir + '*', faDirectory, SRec) = 0 then
  begin
    repeat
      Result := (faDirectory and SRec.Attr <> 0) and (SRec.Name <> '.') and (SRec.Name <> '..');
    until (FindNext(SRec) <> 0) or Result;
    FindClose(SRec);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if HasSubDir('C:\Test') then
    ShowMessage('Im Verzeichnis C:\Test noch Unterverzeichnisse vorhanden.');
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:55 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz